2015-11-27 55 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(); 
相关问题