我正在创建一个非常简单的媒体播放器应用程序。我想从使用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方法。

09-10 09:34