Search code examples
javaandroidbuttonrandomsoundpool

How to make Random sound when button click?


So i have 4 sound here, i was use 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);

so i wonder how to make button choose random sound :

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

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

Anyone have some Idea?


Solution

  • You can store soundIDs in an array and select one of them randomly with Random class of 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);
        }
    });