2016-01-22 71 views
0

我有一個應用程序,它看起來像一個炸彈,當在數字用戶點擊,它就會發出聲音,用下面的代碼的Android播放原始文件

 final MediaPlayer mp = MediaPlayer.create(this, R.raw.c4_click); 
      mp.start(); 

工作正常,然後當個號碼已經全面進入,用戶然後點擊一個按鈕,所以現在將創建另一個聲音

final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.c4_plant); 
      mp.start(); 

,我的問題是,當這種「C4」已經種下,並在號碼的另一個用戶再次按下,聲音消失了。我想以某種方式首先停止mediaplayer?或者我應該在這裏做什麼?

編輯: 我已經改變了數字點擊聲這一

Button btn = (Button) view; 
    if(mp != null){ 
     if(mp.isPlaying()){ 
      mp.stop(); 
      mp.release(); 
     } 
     mp = null; 
    } 
    mp = MediaPlayer.create(MainActivity.this, R.raw.c4_beep1); 
    mp.start(); 

和按鈕點擊聲這一

  if(mp != null){ 
       if(mp.isPlaying()){ 
        mp.stop(); 
        mp.release(); 
       } 
       mp = null; 
      } 
      mp = MediaPlayer.create(MainActivity.this, R.raw.c4_plant); 
      mp.start(); 

但它崩潰後

編輯 :全班 full code here 我的第一個Android應用程序,請不要介意編程風格,這樣

+0

[使用媒體播放器以重放相同的文件]的可能的複製(http://stackoverflow.com/questions/11533728/using-mediaplayer-to-replay-the-same-file) – Gavriel

+0

我試圖請按照該帖子,但問題仍然存在 –

+0

然後請在您嘗試他們建議的 – Gavriel

回答

2

上的數字點擊

MediaPlayer mp = MediaPlayer.create(this, R.raw.c4_click); 
mp.start(); 

Button點擊使用此代碼。

if(mp != null){ 
    if(mp.isPlaying()){ 
     mp.stop(); 
     mp.release(); 
    } 
    mp = null; 
} 
mp = MediaPlayer.create(MainActivity.this, R.raw.c4_plant); 
mp.start(); 
+0

我已經試過這種方式來做到這一點,但這樣做後,應用程序崩潰。在我擁有所有這些.stop和.release的東西之前,它只是沒有輸出任何聲音,但它仍然運行正常 –

+0

抱歉,我沒有得到你。我的代碼是否適合你工作? @benjiWong –

+0

抱歉讓人困惑,這不行。 –

相關問題