我想按返回或返回按钮时停止音频
public class buttonFour extends Activity{
MediaPlayer mp;
@Override
public void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.button4);
MediaPlayer mp = MediaPlayer.create(this, R.raw.song);
mp.start();
}
}
我尝试了以下内容:
@Override
public void onPause () {
if (mp != null){
mp.pause();
mp.stop();
}
super.onPause();
}
但音乐继续播放
答案 0 :(得分:2)
使您的MediaPlayer引用成为全局引用。
然后覆盖onBackPressed()
public class buttonFour extends Activity {
MediaPlayer mp;
@Override
public void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.button4);
mp = MediaPlayer.create(this, R.raw.song);
mp.start();
}
}
@Override
public void onBackPressed ()
{
if (mp != null)
mp.stop();
super.onBackPressed();
}
编辑,虽然上面应该有用,如果不是,你可以尝试这样的事情:
@Override
public void onPause ()
{
if (mp != null)
{
mp.pause();
mp.stop();
}
super.onPause();
}
但是,一旦“活动”离开屏幕或轮换更改,此代码将停止播放。
答案 1 :(得分:0)
您正在初始化MediaPlayer
内的另一个本地mp
对象onCreate()
,这就是为什么实例变量永远不会被初始化,也从不暂停。
只需通过替换行来使用实例变量:
MediaPlayer mp = MediaPlayer.create(this, R.raw.song);
带
mp = MediaPlayer.create(this, R.raw.song);
答案 2 :(得分:0)
尝试使MediaPlayer
对象全局...
这适用于全局MediaPlayer
对象。
然后
mp.stop();