2017-04-20 52 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(); 

      } 

     }); 

    } 
} 

回答