我正在创建一个非常简单的媒体播放器应用程序。我想从使用getCurrentPosition捕获的SeekTo位置恢复歌曲。但是seekTo并非从我已捕获的位置开始,而是从头开始。
捕获当前位置,暂停并将按钮文本更改为单击以恢复的代码
int media_length = mediaplayer.getCurrentPosition();
Toast.makeText(this,"media length is"+media_length, Toast.LENGTH_LONG).show();
mbutton.setText("Click to Resume");
mediaplayer.pause();
查找代码要捕获的位置,开始并将按钮文本更改为“单击以暂停”
mediaplayer.seekTo(media_length);
mediaplayer.start();
mbutton.setText("Click to Pause");
那里已经有几篇相关的文章,但他们似乎声称是Android中的一个错误。
引用:MediaPlayer seekTo doesn't work和
有什么解决方法吗?感谢您的帮助。
最佳答案
您可以尝试以下代码。它为我工作...
public void forwardSong() {
if (mPlayer != null) {
int currentPosition = mPlayer.getCurrentPosition();
if (currentPosition + seekForwardTime <= mPlayer.getDuration()) {
mPlayer.seekTo(currentPosition + seekForwardTime);
} else {
mPlayer.seekTo(mPlayer.getDuration());
}
}
}
您可以在此之前暂停mediaplayer,然后在此方法之后调用start方法。