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);
希望这会起作用。
添加回答
举报