Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按下主页按钮时,我想停止mediaplayer_Android_Background_Media Player_Playing - Fatal编程技术网

Android 按下主页按钮时,我想停止mediaplayer

Android 按下主页按钮时,我想停止mediaplayer,android,background,media-player,playing,Android,Background,Media Player,Playing,当我退出应用程序时(按下home(主页)按钮或back(后退)按钮),音乐会在后台持续播放。我怎样才能阻止它 public class MainActivity extends Activity implements OnClickListener { MediaPlayer ourSong; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState

当我退出应用程序时(按下home(主页)按钮或back(后退)按钮),音乐会在后台持续播放。我怎样才能阻止它

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

         }

         }

}

我编写了此代码,当我转到下一节课时,它应该停止,下一首歌将开始

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

查看您想在上做什么。 例如:

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

     ourSong.stop();
 }

你应该把

if (player != null && player.isPlaying()) {
    player.stop();
    player.release();
    player = null;
}
在活动的onStop()或onDestroy()方法中

如果您将其置于
onStop()


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

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

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

您必须重写onKeyDown()方法,并检查keyevent是否为home key或back button methong,然后在此方法中停止媒体播放器对象,然后释放它。 mp.stop();
mp.release()

我认为最好使用onPause()。但它说“播放器无法解析”,我应该添加局部变量或字段吗?我这样做了,它强制关闭致命异常:main java.lang.Runtimeexception:无法暂停活动(com.example.MainActivity)。java.langI11 Legal.state.EXCEPTION 12-20 13:21:49.882:E/AndroidRuntime(1186):致命异常:main 12-20 13:21:49.882:E/AndroidRuntime(1186):java.lang.RuntimeException:无法暂停活动{com.example.barbarbayaman/com.example.barbayaman.main活动}:java.lang.IllegalStateException 12-20 13:21:49.882:E/AndroidRuntime(1186):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:3016)12-20 13:21:49.882:E/AndroidRuntime(1186):在dalvik.system.NativeStart.main(本机方法)12-20 13:21:49.882:E/AndroidRuntime(1186):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2971)12-20 13:21:49.882:E/AndroidRuntime(1186):在android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2949)12-20 13:21:49.882:E/AndroidRuntime(1186):在android.app.ActivityThread.access$800(ActivityThread.java:141)我想我把代码放错地方了,所以出错了,我在代码的底部做对了,现在工作正常。非常感谢,你是大师:)