2015-11-27 51 views
0

所以我這裏有4聲,我是用的Soundpool如何在點擊按鈕時發出隨機聲音?

 sound1 = soundPool.load(this, R.raw.aww, 1); 
    sound2 = soundPool.load(this, R.raw.arh, 1); 
    sound3 = soundPool.load(this, R.raw.agg, 1); 
    sound4 = soundPool.load(this, R.raw.uhh, 1); 

所以我不知道如何使按鈕選擇隨機的聲音:

click= (Button)findViewById(R.id.bm); 
    click.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View click){    
      //choose one of four sound to play 
      } 
     }); 
} 

任何人有一些想法?

+0

你到目前爲止試過了什麼?我會把所有的引用放到一個數組中,產生一個隨機索引並在所述索引上播放聲音。 –

回答

2

您可以存儲soundIDs在數組中,並與Random類的Java選擇其中一個隨機隨機播放。

int[] sound = new int[4]; 
sound[0] = soundPool.load(this, R.raw.aww, 1); 
sound[1] = soundPool.load(this, R.raw.arh, 1); 
sound[2] = soundPool.load(this, R.raw.agg, 1); 
sound[3] = soundPool.load(this, R.raw.uhh, 1); 

Random random = new Random(); 

click = (Button) findViewById(R.id.bm); 
click.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View click) { 
     //choose one of four sound to play 
     soundPool.play(sound[random.nextInt(4)], 1.0f, 1.0f, 0, 0, 1.0f); 
    } 
}); 
+0

謝謝先生,這是工作! – Ricci

0

如何對數組中的每個聲音進行引用?然後你可以生成一個介於0和array.length-1之間的隨機數並播放該聲音。

0

假設你有N個聲音剪輯

int[] sounds={sound1, sound2,.........., soundN}; 

讓他們在點擊按鈕

Random r = new Random(); 
int start = 0; 
int end = N; 
int playRandom = r.nextInt(end-start) + start; 
player = MediaPlayer.create(getApplicationContext(),sounds[playRandom]); 
player.start(); 
相關問題