2016-12-20 35 views
0

當我再次單擊它時,我想播放它。這裏是我的代碼,但它不工作,因爲當我再次單擊按鈕開始重複相同的音頻一次又一次,而不是暫停。請幫我我想用一個相同的按鈕來播放和暫停。首先點擊我想播放它,然後點擊我想暫停它

Button button_attention = (Button)findViewById(R.id.button_one); 
     button_attention.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       player=MediaPlayer.create(MainActivity.this, R.raw.alarm_effect); 
       { 
        if (player.isPlaying()){ 
         player.stop();} 
        else { 
         player.start(); 
        } 
       } 
+1

嘗試'player.pause()'而不是':當你想使用更改曲目

private void changeTrack(int resourceId){ player = MediaPlayer.create(MainActivity.this, resourceId); } 

只需調用此方法player.stop()'也許? – mike510a

+0

您每次單擊按鈕時都會重新安裝媒體播放器。將player = MediaPlayer.create ....行移到事件處理程序的外部,然後從內部引用它。看到我的答案。 –

回答

2

您重新定義每次它被稱爲上單擊處理程序內的媒體播放器,因此它不會工作。您需要將定義移到點擊式處理程序之外,然後從內部引用它。

//Move it to here 
player=MediaPlayer.create(MainActivity.this, R.raw.alarm_effect); 

Button button_attention = (Button)findViewById(R.id.button_one); 
    button_attention.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
       if (player.isPlaying()){ 
        //This maybe should be pause. 
        player.stop(); 
       } 
       else { 
        player.start(); 
       } 

編輯: 繼關於如何使用此爲多個音軌您的評論,你應該做的事情像下面這樣。

實現方法,如以下幾點:

changeTrack(R.raw.MEDIA_NAME); 
+0

謝謝它的工作正常。但是,如果我想將這個概念實現爲多個按鈕,它現在只適用於一種聲音。 –

+0

嗨,如果這個工作可以請你把它標記爲答案,我現在將添加到我的答案,以便這將與多種聲音一起工作。 –

+0

編輯我的答案,以便您可以通過調用方法來更改曲目。 –

相關問題