如何在Android应用程序上停止音频

时间:2012-12-17 15:21:30

标签: android audio

我想按返回或返回按钮时停止音频

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

但音乐继续播放

3 个答案:

答案 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();