mattgallagher / AudioStreamer

A streaming audio player class (AudioStreamer) for Mac OS X and iPhone.
http://cocoawithlove.com
1.93k stars 553 forks source link

Fixing bit-rate calculation, thus fixing 'duration' and 'progress' parameters for long files #95

Open benzamin opened 9 years ago

benzamin commented 9 years ago

Precision was lost when summing up all the bit-rates together and then dividing it with the count in the -calculateBitRate method. So the bit rate looses couple hundred bits, and thus shows wrong duration for long files, also give wrong progress.

Can be tested with this 60 minute voice sync file given below, run it on VLC or some other player, its total duration is actually 1 hour 36 second, but without the fix of bit-rate, it shows 1 hour 56 second or something. And after every seek, it shows some extra seconds as current progress.

Also added a small method for break down the seconds to HH:MM:SS so that we can take a better look at duration and progress time.

Download the test file from here: https://www.dropbox.com/s/lwg8o42hkpweoxw/60minSyncTest.mp3?dl=0

benzamin commented 8 years ago

@mattgallagher Please check out the pull request :)