"var t0 = FMSound.getBytesLoaded();
var t1 = FMSound.getBytesTotal();
var t2 = FMSound.position;
var t3 = FMSound.duration;
var t4 = getTimer()-FMTimer;
if (t3-t2>t4/t0*t1-t4) {
//your function
}
t3-t2得出的是当前已加载的歌曲还可播放的毫秒数
t4是自MP3加载以来所经过的毫秒数
原式是:t3-t2>t4/(t0/t1)-t4
t0/t1就是当前加载的百分比咯,用t4除那个百分比就可以得出加载MP3文件总共需要多少时间,然后再减去已经用了的t4毫秒,得出的是加载剩余数据需要的时间
当t3-t2也就是当前可播放的毫秒数大于那个加载剩余数据所需要的时间时,缓冲就完成了...
看起来是很合理...不知道为什么实验的时候总是比预想的缓冲时间要长......
本文转自:http://www.5uflash.com/flashjiaocheng/Fmsjiaocheng/2345.html