当我在我的机器人中按回/主页按钮时,我想停止播放音乐。我的代码很少,但它不起作用。谁能告诉我我在哪里做错了。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.pause();
return true;
}
return super.onKeyDown(keyCode, event);
}
提前致谢
答案 0 :(得分:0)
我认为这是因为您正在创建MediaPlayer
的新实例并在每次调用方法时暂停它。您需要获取当前正在播放的MediaPlayer
的引用才能暂停它。
答案 1 :(得分:0)
MediaPlayer mediaPlayer;
onCreate(...)
{
....
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(mediaPlayer.isPlaying())
{
mediaPlayer.stop();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
public void SomeOtherFunction()
{
mediaPlayer = new MediaPlayer();
//play for example
}
这个例子对我来说很好。希望它能帮到你
按下后退按钮时停止/启动的代码
MediaPlayer mediaPlayer;
int flag =0;
onCreate(...)
{
....
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(flag==1)
{
if(mediaPlayer.isPlaying())
{
mediaPlayer.stop();
flag=0;
}
return true;
}
else if(flag==0)
{
mediaPlayer.start();//or play.. forgot
flag=1;
return true;
}
}
return super.onKeyDown(keyCode, event);
}
public void SomeOtherFunction()
{
mediaPlayer = new MediaPlayer();
//play for example and set flag to 1 // flag=1;
}
必须工作..但我没有测试它。