7
我已设置:安卓:媒体播放器时间问题
mSeekBar.setMax(mp.getDuration()); // 8480
AUDIOFILE完成后,我所得到的是:
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer)
{
Log.e("onComplete>>", ""+mediaPlayer.getCurrentPosition());
// mediaPlayer.getCurrentPosition() = 8192
Log.e("getDuration", ""+mediaPlayer.getDuration());
// mediaPlayer.getDuration() = 8480
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Why never get called???
}
}
});
那么,为什么MediaPlayer的当前位置从未达到总音频文件的持续时间?
或在技术上我们可以说为:
为什么不呢?
mediaPlayer.getCurrentPosition()==mediaPlayer.getDuration()
为什么总是
mediaPlayer.getCurrentPosition()< mediaPlayer.getDuration() 在OnCompletion监听器?
例如:
我有一个播放符号开始播放。现在当我按玩符号它将转换为暂停符号。
我有一个audiodfile的Maxduration。
现在我想转换暂停符号到播放音频文件完全播放时的符号。 所以我现在做的是检查:
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Convert Imagview from Pause to Play
// But never get called
}
什么Log.i的输出' (“onComplete >>”,“”+ mediaPlayer.getCurrentPosition()); Log.i(“getDuration”,“”+ mediaPlayer.getDuration());' – 2014-09-26 10:31:22
当前位置总是小于GetDuration。 – 2014-09-26 10:32:07
嗯..我发现一个[问题线程](https://code.google.com/p/android/issues/detail?id=38627)相同,但不知道是否有人找到解决方案或解释。 。和[this](http://www.anddev.org/multimedia-problems-f28/mediaplayer-getcurrentposition-t20032.html)。 – 2014-09-26 10:41:07