MediaPlayer的getDuration()
方法对于某些音频文件给出了不正确的值。我认为所有这些文件的共同特点是它们都使用Audacity或其他音频编辑工具进行过处理。当试图将MediaPlayer进度与进度条相关联时,这是一个问题。
我已经记录了它:
while(mPlayer.isPlaying())
Log.i("progress/total",
mPlayer.getCurrentPosition() +
"/" + mPlayer.getDuration());
然后我找到了这个:
I/progress/total(643): 14615/14620
I/progress/total(643): 14647/14620
这只是数千个日志行中的两个,但重点是进度超过getDuration()认为的歌曲总时长后,它仍然继续。因为MediaPlayer实际上可以提供正确的持续时间总和,所以是否有一种方法可以使用它来获取ProgressBar的适当最大值?