我有一个应用程序在应用程序打开时播放一些音乐文件,但是当我按下电源按钮时,声音因某些原因而继续播放。有没有办法覆盖电源按钮,这样它也会在推动时停止媒体播放器?
MediaPlayer mp;
protected void onCreate(Bundle savedInstanceState) {
...
...
mp = MediaPlayer.create(this, mAudio[0]);
mp.start();
...
...
}
我想在按下电源按钮时拨打mp.stop()
。
答案 0 :(得分:1)
覆盖onKeyDown
并检查它是否为KEYCODE_POWER
。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
// Stop the media player here
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:0)
添加此方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
// stop the media from playing
return true;
}
return super.onKeyDown(keyCode, event);
}
按下某个键时,此方法正在激活。它检查按下了什么键并对其做出反应。
答案 2 :(得分:0)
首先,当你想暂停或停止声音时,你需要了解。如果您想这样做,当您退出/隐藏某个应用程序时,覆盖onKeyDown
将无法提供帮助。我认为在这种情况下更好的方法是:
protected void onCreate(Bundle onSaveInstanceState) {
super.onCreate(onSaveInstanceState);
mp = MediaPlayer.create(this, mAudio[0]);
}
protected void onStart() {
super.onStart();
mp.start();
}
protected void onStop() {
super.onStop();
mp.stop();
}
但是如果你只想在按下电源按钮时停止声音,那么是的,你需要覆盖onKeyDown