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