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