我想在按下主页按钮时停止媒体播放器

时间:2012-12-20 09:16:38

标签: android background media-player playing

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

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

         }

         }

}

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

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

将以下两种方法放在课堂上,以便在分别导航到其他屏幕和主页按钮时停止音乐播放....

@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;
}

答案 2 :(得分:2)

查看您要对onPause执行的操作。 示例:

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

     ourSong.stop();
 }

答案 3 :(得分:2)

你必须覆盖 onKeyDown()方法并检查 keyevent ,如果它是主页键或后退键,则在此方法中停止媒体播放器对象然后释放它。 的 mp.stop(); mp.release();

答案 4 :(得分:1)

你应该放

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

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

如果你把它放在onStop()中,当按下主页按钮时音频会停止(或者任何时候另一个活动可能接管电话铃声)。

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