2

当我离开我的应用程序时(按下主页按钮或返回按钮时),音乐会继续在后台播放。我怎样才能阻止它?

public class MainActivity extends Activity implements OnClickListener {

MediaPlayer ourSong;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ourSong = MediaPlayer.create(MainActivity.this, R.raw.girissong);
    ourSong.start();

    // codes

}

@Override
public void onClick(View v) {

    // some code

         }

         }

}

我制作了这段代码,当我去下一堂课时它应该停止,下一首歌将开始

4

5 回答 5

4

覆盖 Activity 的 onPause 方法并在 MediaPlayer 上调用 stop。

于 2012-12-20T09:18:40.227 回答
4

在您的课程中放置以下两种方法,分别在导航到其他屏幕和主页按钮时停止音乐播放....

@Override
public void onPause()
{
   super.onPause();
   if(ourSong.isPlaying())
   ourSong.stop();
   else
   return;
}

@Override
public void onStop()
{
   super.onStop();
  if(ourSong.isPlaying())
    ourSong.stop();
  else
   return;
}
于 2012-12-20T09:21:14.383 回答
2

查看你想在onPause上做什么。例子:

protected void onPause() {
     super.onPause();

     ourSong.stop();
 }
于 2012-12-20T09:19:02.087 回答
2

您必须重写onKeyDown()方法并检查keyevent是否是主页键或返回按钮方法,并在此方法中停止您的媒体播放器对象然后释放它。 mp.stop(); mp.release();

于 2012-12-20T09:23:24.467 回答
1

你可能应该把

if (player != null && player.isPlaying()) {
    player.stop();
    player.release();
    player = null;
}

在您的活动的 onStop() 或 onDestroy() 方法中。

如果你把它放在onStop()音频中,当按下主页按钮时(或者任何其他活动接管电话响铃时),它就会停止。

如果你把它放进去,onDestroy()它会一直播放,直到系统需要你的应用程序正在使用的资源。无论哪种方式,这是一个好主意,这样您的应用程序就不会保留 MediaPlayer 资源,以防用户出于任何原因没有点击停止按钮。

于 2012-12-20T09:19:13.300 回答