繁体   English   中英

在Android中恢复歌曲

[英]Resume song in Android

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

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

这是我的代码。

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 !!!!!!");
      }
    });
  }
}

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

你能试一下吗:

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

参考MediaPlayer的文档

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

将mp.getCurrentPosition保存为某种持久性,例如在onPause中为sharedprefs,在mediaplayer上调用pause()。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM