2011-03-07 46 views
0

我想在我的android中按下/ home按鈕時停止音樂。我有一點代碼,但它不工作。任何人都可以告訴我我犯的錯誤。onKeyDown在我的代碼中不起作用

@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

我想這是因爲你創建的MediaPlayer一個新實例,每一個你的方法被調用時暫停它。您需要獲取當前播放的MediaPlayer的參考以暫停播放。

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

必須努力代碼..但是我沒有測試它。

+0

感謝您的回覆,它的工作正常,阻止媒體播放器,但它不會從列表中返回。當我點擊後退按鈕時,你能幫助我怎麼回去嗎? – Shekhar 2011-03-08 04:56:47

+0

雅後退按鈕是working.But我想要實現的home鍵 @覆蓋 \t公共布爾的onkeydown(INT的keyCode,KeyEvent的事件) \t { \t相同的代碼,如果(的keyCode == KeyEvent.KEYCODE_BACK) \t { \t \t \t \t if(mediaPlayer.isPlaying()) mediaPlayer.stop(); 返回false; } \t} \t否則如果(鍵代碼== KeyEvent.KEYCODE_HOME) \t \t { \t \t \t如果(mediaPlayer.isPlaying()) \t \t \t { \t \t \t \t mediaPlayer.stop(); \t \t \t \t return false; \t \t \t} \t \t} \t其他 \t { \t \t返回FALSE; \t} \t return super.onKeyDown(keyCode,event); \t} – Shekhar 2011-03-08 05:18:46