美文网首页
Android 添加按钮点击音效

Android 添加按钮点击音效

作者: sybil052 | 来源:发表于2019-07-23 17:00 被阅读0次

最近项目中遇到的一个需求:点击金币,播放金币掉落的声音。实现方式如下:

1. 在res下新建raw,把资源文件coin_click.wav放进去
sybil052-20190723-163221.png
2. 建立单例类

代码如下:

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.Builder().build();
        //加载音频文件
        soundPool.load(context, R.raw.coin_click, 1);
    }

    public void play(int number) {
        Log.d(TAG, "number " + number);
        /**
         * 播放音频
         * params说明:
         * //左耳道音量【0~1】
         * //右耳道音量【0~1】
         * //播放优先级【0表示最低优先级】
         * //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】
         * //播放速度【1是正常,范围从0~2】
         */
        soundPool.play(number, 1, 1, 0, 0, 1);
    }
}
3. 具体使用

代码如下:

private void initView() {
    soundInstance = SoundPoolUtil.getInstance(this);
    ...
    mCoinView.setOnCoinClickListener(new CoinView.CoinClickListener() {
            @Override
            public void coinClick(View v, CoinBean coinBean) {
                if(coinBean == null){
                    showDialog();
                    return;
                }
                final float x = v.getX();
                final float y = v.getY();
                // 播放音效
                soundInstance.play(1);
                // 请求接口
                stealVK(v, x, y, coinBean.getId());
                // 移除金币
                Iterator<CoinBean> iterator = mCoinBeans.iterator();
                while (iterator.hasNext()) {
                    CoinBean c = iterator.next();
                    if (c.getId() == coinBean.getId()) {
                        iterator.remove();
                    }
                }
                // 展示新一轮金币
                if(mCoinBeans.size() == 0 && allCoins.size() != 0){
                    index += 1;
                    maxCount -= 1;
                    if(allCoins.size() > index){
                        mCoinBeans.addAll(allCoins.get(index));
                        if(maxCount > mCoinBeans.size()){
                            mCoinView.setCoins(mCoinBeans, mCoinBeans.size());
                        }else {
                            mCoinView.setCoins(mCoinBeans, maxCount);
                        }
                    }
                }
                totalNum = FormateUtil.add(totalNum, coinBean.getNumber());
                NumAnim.startAnim(tvVkNum, Double.parseDouble(totalNum));
                addTextView(v, coinBean.getNumber());
            }
        });
}

相关文章

  • Android 添加按钮点击音效

    最近项目中遇到的一个需求:点击金币,播放金币掉落的声音。实现方式如下: 1. 在res下新建raw,把资源文件co...

  • 添加全局按钮点击音效

    Cocos Creator v2.4.0 起因:做一个小游戏需要在按钮点击的时候添加一个音效。需求:全部的按钮在点...

  • 加载本地沙盒音效

    点击按钮会有音效、进入某个vc会播放背景音乐等,都是加载本地沙盒的音效 0.本地沙盒中添加音效: 1.加载音效的方...

  • Android 音效 & SoundPool 封装类 & 停止音

    项目中,需要添加点击或者状态回调的音效。Android 有专门用于实现音效播放的类,就是 SoundPool 。 ...

  • 2019-04-24 vue css实现按钮淡入淡出效果

    具体场景:点击添加显示删除按钮,此时删除按钮淡入;点击删除按钮,删除按钮淡出 注意:在点击添加按钮,删除按钮淡入时...

  • Android手机开发之通讯录

    Android手机开发——通讯录 实现增加、查询、修改、删除的功能,输入联系人信息,点击“添加”按钮,可以添加联系...

  • JavaScript 点击事件 - 一个按钮触发另一个按钮

    给按钮 2 添加点击事件 click 触发按钮 1 的点击事件,就算给按钮 1 添加样式 display: non...

  • xcode脚本

    一、自动增加脚本 点击添加按钮 点击添加按钮 添加脚本 编译运行、查看build version (递增) 二、运...

  • js_homework_1

    点击添加可以添加方块,点击闪烁,每个方块可以闪烁各种颜色,并且闪烁按钮变为暂停按钮,点击暂停则停止闪烁:

  • 微信小程序为按钮添加点击音效

    1.实现原理 文档地址: 2.实现代码 3.注意点 若音频为本地文件,src路径需要是绝对路径 4.更多小程序de...

网友评论

      本文标题:Android 添加按钮点击音效

      本文链接:https://www.haomeiwen.com/subject/fcdalctx.html