1 回答

TA貢獻1898條經驗 獲得超8個贊
創建一個調用的方法,該方法將在 start() 方法之前startPosition(int initialTime)尋找位置mediaPlayer
private void startPosition(int initialTime){
mMediaPlayer.seekTo(initialTime); //time in millisecond, e.g 4sec = 4000
}
在方法之前調用此方法mMediaPlayer.start()。
現在創建一個將無限運行的線程,并在達到上限時將媒體播放器位置返回到初始位置。 編輯 將 playAudio() 方法替換為以下內容,并更改upperTimerLimit為特定值,例如 14000(14 秒)。
public void playAudio(int audioId)
{
// stop the previous playing audio
if(mMediaPlayer != null && mMediaPlayer.isPlaying())
{
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
}
mMediaPlayer = MediaPlayer.create(this, audioId);
mMediaPlayer.start();
new Thread(new Runnable() {
public void run(){
while(true){
if(mMediaPlayer.getCurrentPosition()-UpperTimeLimit >=0){ //UpperTimeLimit should be in milliseconds. UpperTimerLimit is the specific second after which player should start again the sound.
startPosition(initialTime); //Call the startPosition(int initialTime)
}
}
}).start();
}
在 playAudio() 方法中mMediaPlayer.start() 不需要立即創建線程。mMediaPlayer.setLooping(true);
希望這會起作用。
添加回答
舉報