我有一个应用程序,用户可以在其中点击一个按钮并开始收听一个给定的曲目(它只是整个专辑的一个长曲目,它们只能播放和暂停)。
问题在于,如果你开始播放音乐,转到第二个活动,然后返回主页,你现在可以选择按音乐播放(即使它仍在播放)。然后按下播放时,它会再次启动曲目,位于正在播放的曲目的顶部。
为了澄清,我希望音乐可以播放所有活动,但是当你回到主页时,我希望媒体播放器意识到它仍在播放音轨并允许用户暂停/播放愿望。
以下是第一项活动的代码,第二项活动是“幕后花絮”:
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();
}
});
}
}
答案 0 :(得分:0)
您需要使用服务而不是活动来播放媒体。
关注此https://developer.android.com/guide/components/services.html了解详细信息