【问题标题】:How to resume MediaPlayer when paused暂停时如何恢复 MediaPlayer
【发布时间】:2013-04-12 09:26:25
【问题描述】:

我希望在应用程序最小化时暂停 MediaPlayer 音乐,并在恢复时从同一点恢复,但我不能这样做,每次从开头开始...

这是我所拥有的:

public class Main extends Activity {
MediaPlayer music;
int length;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    music = MediaPlayer.create(Main.this, R.raw.song);
    music.setLooping(true);
    music.start();

}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    music.pause();
    length = music.getCurrentPosition();
}

@Override
protected void onRestart() {
    // TODO Auto-generated method stub
    super.onRestart();
    music.start();
    music.seekTo(length);
}
}

【问题讨论】:

  • 就像按下 Home 按钮,或 Back 按钮

标签: java android android-mediaplayer media-player


【解决方案1】:

你似乎把语句的顺序弄错了,试试这个:

music.seekTo(length);
music.start();

【讨论】:

    【解决方案2】:

    您需要先找到最后一个位置,然后重新开始播放。这样做:

    music.seekTo(length);
    music.start();
    

    【讨论】:

    • 刚试了一下,它只在我按下主页按钮时有效,当我重新运行应用程序时,它从原来的位置开始,但如果我用返回按钮关闭它,它从开始。我还尝试添加 onStop() 来保存状态
    • @SartherisStormhammer 添加 onStop()、onResume() 和 onStart(),方法如您所愿。
    • 仅在按下 Home 键时有效,但使用 Back 键时仍然无效,我添加了更多方法,这是新代码 pastebin.com/0VEsnrhQ
    • 我正在手机上测试 4.0.4
    • 随便,但有人可能会使用搜索找到问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-06-04
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多