当我单击播放按钮时,我有一个活动,它会播放mp3声音。当我单击返回时,音频仍在后台播放,并且还可以与其他烦人的音频一起运行。我试图实现此处使用的其他方法,但无济于事。
代码:
public class InstructionsManualActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_instructions_manual);
Button one = (Button) this.findViewById(R.id.instructionsManual_but);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.instructions_manual);
one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mp.start();
}
});
}
}
我已经尝试过此代码,但是按回车应用程序崩溃
@Override
public void onBackPressed() {
super.onBackPressed();
if (mp.isPlaying()) {
mp.stop(); // or mp.pause();
mp.release();
答案 0 :(得分:2)
Try this it's working for me
if (mp != null) {
mp.stop();
mp.release();
mp = null;
finish();
}
答案 1 :(得分:2)
首先在全局范围内声明MediaPlayer对象
MediaPlayer mp = null; //Declaring globally so can access anywhere in activity.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_instructions_manual);
Button one = (Button) this.findViewById(R.id.instructionsManual_but);
mp = MediaPlayer.create(this, R.raw.instructions_manual);
one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mp.start();
}
});
}
在任何活动
onBackPressed()
中按下后退按钮时 将被称为,在那里您可以停止播放媒体播放器。
@Override
public void onBackPressed() {
super.onBackPressed();
//Here you can stop your MediaPlayer
if (mp != null && mp.isPlaying()) {
mp.stop();
mp.release();
}
}
答案 2 :(得分:0)
您的代码很好,只需在停止前检查空玩家
super.onBackPressed();
if (mp!=null && mp.isPlaying()) {
mp.stop(); // or mp.pause();
mp.release();