Android 按下主页按钮时,我想停止mediaplayer
当我退出应用程序时(按下home(主页)按钮或back(后退)按钮),音乐会在后台持续播放。我怎样才能阻止它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
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)我想我把代码放错地方了,所以出错了,我在代码的底部做对了,现在工作正常。非常感谢,你是大师:)