安卓开发按钮触发音效替换以及系统音效和媒体音量大小进度条调节

本文介绍了如何在安卓开发中替换按钮点击事件的音效,并通过系统音效控制其大小。首先讲解了如何将系统音效应用于按钮点击事件,接着详细阐述了如何分别控制媒体音乐和系统音效的音量,利用SeekBar实现音量调节,并提供了相关XML布局和颜色设置。同时,文章提到了去除系统默认点击音效的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.按钮点击事件音效替换

        对于播放音乐已经有很多博客可以翻阅,对于替换点击事件的音效也有不少博客,但是对于可以通过系统音效控制点击音效大小的博客,我昨天找了半天也才找到半个方法。为啥说半个呢很疑问,我下面给大家贴代码来看看并且指出。

public class SoundPoolUtil {
    private static SoundPoolUtil soundPoolUtil;
    private SoundPool soundPool;

    //单例模式
    public static SoundPoolUtil getInstance(Context context) {
        if (soundPoolUtil == null)
            soundPoolUtil = new SoundPoolUtil(context);
        return soundPoolUtil;
    }


    @SuppressLint("NewApi")//这里初始化SoundPool的方法是安卓5.0以后提供的新方式
    private SoundPoolUtil(Context context) {
//        soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
        soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        //AudioManager.STREAM_MUSIC
        //加载音频文件
        soundPool.load(context, R.raw.click_on, 1);

    }

    public void play(int number) {
        Log.d("tag", "number " + number);
        //播放音频
        soundPool.play(number,1, 1, 1, 0, 1);
    }
}

       源代码是这样的大家搜基本上都能搜到好几个这样的方法,但是因为需求的问题导致本来只需要几秒cv就行的我,却多花了一阵子时间,其实吧很简单只需要把"AudioManager.STREAM_MUSIC"换成"AudioManager.STREAM_SYSTEM"是的就是这么简单,而我却疯了似的看源代码查博客查了半个点,哎可能就是因为我还是菜鸟吧,话说言归正传我为啥要替换这个呢,也可能你们会问这都是播放声音为啥两个就不一样呢,那么问题回到了正轨,看完下面这段你们就知道是为何了,话不多说进行咱们的第二段也就是调节音效音量的步骤。

 2.对于系统音效和媒体音乐的控制

 这段也非常简单了网上有很多案例首先就先说媒体音乐吧话不多说上代码

//音量控制,初始化定义
AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
//最大音量
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//当前音量
int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 10, 0); //tempVolume:音量绝对值

对这是替换媒体音乐的,再然后问题来了产品让我控制按键音效声音,我当时表情惊讶"啊这!",这不是一起控制的吗?实则不然经过我多方面了解(其实就是百度)才发现按钮音效是通过系统音效控制的,那么就简单了我们只需要把媒体音效方法里的"AudioManager.STREAM_MUSIC"换成"AudioManager.STREAM_MUSIC"就行了,是不是对这两个引用很熟悉,对这就是咱们上面1中说的问题了,对于1中的问题我要换的引用,其实就是吧媒体音乐换成系统音效,也是我控制他俩声音大小的方法不同,这样我就可以把我替换的按键音和背景音量分开控制了。接下来我还要做个dialog来控制音量加减话不多说上代码。

public class SetUpDialog extends Dialog {


    @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值