java - 如何在点击按钮时发出随机声音?

标签 java android button random soundpool

所以我这里有 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 的 Random 类随机选择其中一个。

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);
    }
});

关于java - 如何在点击按钮时发出随机声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33960918/

相关文章:

java - 在 Spring Data JPA 中的 native 查询之间共享 SQL

java - Android 意外的顶级异常和验证错误

android - 将 BroadcastReceiver 注册到 Widget(Context 对象的区别)

android - 如何使用cordova android检测摇动事件?

css - 如何使自定义 css 按钮响应?

java - 如何在 JVM 中查看 MaxPermSize?

java - 如何在 Spring Boot 3/Hibernate 6 中使用查询参数值记录 SQL 语句

c++ - 使用 C++ 创建按钮

java - 无论屏幕分辨率如何,如何获取 map 的坐标

JavaScript 图像作为按钮 (onClick)