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 获得适当的最大值?