0

我创建了一个媒体播放器。我正确运行应用程序。但是我想在我重新开始活动时恢复我的歌曲。为什么当我重新启动我的活动时我的音频会重新启动?

我怎样才能做到这一点?我不明白。谁能帮我??

这是我的代码。

public class Audio_Activity extends Activity {
  public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.audio);
    init();

    mp=MediaPlayer.create(Audio_Activity.this,R.raw.ennamo_yadho);
    Log.e("Song is playing","in  Mediya Player ");

    if(mp!=null) {
      length=mp.getCurrentPosition();
      Log.e("Current ","Position -> " + length);

      if(length > 0){
        mp.seekTo(length);
        mp.start();
        btnChapter.setEnabled(false);
      }
  }

    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

      @Override
      public void onCompletion(MediaPlayer mp) {
        mp.stop();
        mp.release();
        btnChapter.setEnabled(true);
        System.out.println("Music is over and Button is enable !!!!!!");
      }
    });
  }
}
4

3 回答 3

2

为了防止这种情况发生,您应该使用服务在您的活动进入后台时播放声音。请参阅有关活动生命周期的 android 文档以了解实际发生的情况:https ://developer.android.com/training/basics/activity-lifecycle/index.html

于 2013-07-08T10:53:24.813 回答
0

将 mp.getCurrentPosition 保存在某种持久性中,例如在 onPause 中的 sharedprefs,在媒体播放器上调用 pause()。

在 onResume 中,执行 mp.start()、mp.seekTo(savedPosition)。

于 2013-07-08T11:09:32.493 回答
0

你能试一下吗:

mp.start();
mp.seekTo(length);

参考MediaPlayer 的文档

public void start ()
开始或恢复播放。如果之前已暂停播放,则播放将从暂停的位置继续。如果播放已停止,或以前从未开始,则播放将从头开始。

于 2013-07-08T10:57:49.127 回答