簡體   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