|
Well this requires some basic knowledge of mp3:
An mp3 file has no superblock in any part of the file. This means a program cannot read part of the mp3file to know its size, bitrate, etc.
These values are calculated during playing. For instance if first part of the file takes 30MB in space and contains 30min of music, you can calculate how long the music will be if the complete file is 60MB. But when the last 30MB (due to higher bitrate) only contain 20min of music, the calculation is 10min off. But you will only know when you analyze the whole file!
This ofcourse takes way to much time if an mp3player would do that with every file. So at loading the mp3player loads the first few seconds and then calculates the length of the mp3file. If the bitrate is the same in the whole file (which is normally when you ripped the mp3file yourself) then the calculation will be pretty good. But if you for instance downloaded the file from different sources (different bitrates, broken frames due to broken downloads) the calculation can be way of!
One thing you can do: decode the mp3 to wav and code back to mp3 again, this reduces the quality though . Or try getting the mp3file from one source next time (rip yourself, ftp, whatever )
|