2017-04-20 56 views
0

好的,所以我有一個應用程序,用戶可以點擊一個按鈕並開始收聽給定的曲目(這只是整張專輯的一首長曲目,他們只能播放和暫停)。如何阻止mediaplayer播放本身?

問題是,如果您開始播放音樂,轉到第二個活動,然後返回主頁,您現在可以選擇按音樂播放(即使它仍在播放)。當您按下播放按鈕時,它會再次播放曲目,播放已經播放的曲目的頂部。爲了澄清,我希望音樂可以播放所有活動,但是當您返回主頁時,我希望媒體播放器意識到它仍在播放曲目並允許用戶暫停/播放他們希望。

下面是第一個活動的代碼,第二個活動是「幕後花絮」:

package alexgreene.byprocessofimagination; 

import android.app.Activity; 
import android.app.AlarmManager; 
import android.app.Dialog; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Build; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Window; 
import android.widget.ImageButton; 
import android.widget.ImageView; 

import java.io.IOException; 

import static alexgreene.byprocessofimagination.R.layout.activity_main; 

public class MainActivity extends Activity { 

    MediaPlayer mp; 
    ImageButton play, bts, readMore; 
    int startTime = 4250; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(activity_main); 

     play = (ImageButton) findViewById(R.id.bPlay); 
     readMore = (ImageButton) findViewById(R.id.ibReadMore); 
     bts = (ImageButton) findViewById(R.id.ibBackgroundFalling); 

     mp = MediaPlayer.create(MainActivity.this, R.raw.eusa); 
     mp.seekTo(startTime); 

     bts.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 


       Intent i = new Intent(MainActivity.this,  BehindTheScenes.class); 
       startActivity(i); 

      } 
     }); 

     play.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (mp.isPlaying()) { 
        mp.pause(); 
        play.setBackgroundResource(R.drawable.play_headphones); 
       } else { 
        play.setBackgroundResource(R.drawable.pause_headphones); 
        mp.start(); 
       } 
      } 
     }); 

     readMore.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Dialog settingsDialog = new Dialog(MainActivity.this); 
        settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
        settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.popup,  null)); 
       settingsDialog.show(); 

      } 

     }); 

    } 
} 

回答