2015-11-25 377 views
1

我正在測試Android聲音的執行情況。我有一個「imagenButton」,當我按下它時,會調用一個方法「musica()」。真的很簡單:每次按下按鈕時都會重複播放聲音

public void musica(View v) { 
    img = (ImageView) findViewById(R.id.Migrunido); 
    if(m.isPlaying()) { 
     m.stop(); 
     } 
    else { 
     m.start(); 
     } 
    } 

它的工作原理,但想要當我按下按鈕,聲音重複。我讀了很多關於線程的內容,我必須在「stop()」之前做好準備,但無法修復它。

我必須準備我的方法嗎?或者是什麼問題?

感謝

回答

0

嘗試

public static void playAudio(int id) { 

    mediaPlayer = MediaPlayer.create(context,id); 
    if (!mediaPlayer.isPlaying()) { 

     mediaPlayer.start(); 
     mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       mp.stop(); 
       mp.release(); 
      } 
     }); 
    }else{ 
     mediaPlayer.stop(); 
     mediaPlayer.release(); 
    } 
} 

如果你開始之前,這不起作用嘗試mediaPlayer.prepare();

+0

「release()」close app:/ 不知道爲什麼 –

相關問題