onKeyDown在我的代码中不起作用

时间:2011-03-07 07:15:35

标签: java android

当我在我的机器人中按回/主页按钮时,我想停止播放音乐。我的代码很少,但它不起作用。谁能告诉我我在哪里做错了。

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

提前致谢

2 个答案:

答案 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;
    }

必须工作..但我没有测试它。

相关问题