繁体   English   中英

单击按钮时如何发出随机声音?

[英]How to make Random sound when button click?

所以我在这里有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   
            }
        });
}

有人有主意吗?

您可以将soundID存储在数组中,并使用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和array.length-1之间的随机数,然后播放该声音。

假设您有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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM