Android中为按钮设置点击音效

以Switch按钮为例

先声明三个对象

private Switch aSwitch_sound;
private SoundPool soundPool;//音频通知声音播放器
private int soundID;//音频资源ID
添加两个方法
@SuppressLint("NewApi")
private void initSound() {
    soundPool = new SoundPool.Builder().build();
    soundID = soundPool.load(this, R.raw.qipao, 1);
}//实例化soundPool和soundID  R.raw.qipao为音频资源位置
private void playSound() {
    soundPool.play(
            soundID,
            0.1f,      //左耳道音量【0~1】
            0.5f,      //右耳道音量【0~1】
            0,         //播放优先级【0表示最低优先级】
            0,         //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】
            1          //播放速度【1是正常,范围从0~2】
    );
}

附上完整代码

public class SetActivity extends AppCompatActivity {
    private Switch aSwitch_sound;//switch按钮
    private SoundPool soundPool;//音频通知声音播放器
    private int soundID;//音频资源ID
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set);

        initSound();
        aSwitch_sound=findViewById(R.id.switch_sound);
        aSwitch_sound.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                playSound();
            }
        });
    }



    @SuppressLint("NewApi")
    private void initSound() {
        soundPool = new SoundPool.Builder().build();//实例化音频通知播放器
        soundID = soundPool.load(this, R.raw.qipao, 1);//设置资源ID
    }


    private void playSound() {
        soundPool.play(
                soundID,
                0.1f,      //左耳道音量【0~1】
                0.5f,      //右耳道音量【0~1】
                0,         //播放优先级【0表示最低优先级】
                0,         //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】
                1          //播放速度【1是正常,范围从0~2】
        );
    }

}
发布了39 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_29478763/article/details/92421858
今日推荐