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();
}
});
}
}