android:为你的app设置音效
最近在项目中碰到需要设置音效开关的需求。
关于音效开发的问题,都是建立在手机系统设置中,没有静音,且打开了选择操作音的前提下。
1.系统自带的点击声音(通过设置View.playSoundEffect ()实现)
看源码请参考http://blog.csdn.net/jdsjlzx/article/details/17382455
在项目所以的Activity的抽象基类BaseActivity中复写findViewById方法,通过配置文件记录音效开关
/*** 重写findViewById()方法,设置控件是否有按键声音* */@Overridepublic View findViewById(int id) {// TODO Auto-generated method stubView v = super.findViewById(id);if (v != null) {if (mAppConfig.soundOn()) {v.setSoundEffectsEnabled(true);} else {v.setSoundEffectsEnabled(false);}}return v;}
playSoundEffect方法对包括TextView,Button,GridView的item点击,ListView等等控件在内都是适用的,这个可以根据View的源码看到,但是我在项目中碰到的例如RadioGroup,就只能通过以下代码实现点击切换时的音效了
(RadioGroup)rgTab.setOnCheckedChangeListener(onCheckedChangeListener);
private OnCheckedChangeListener onCheckedChangeListener = new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {if(new AppConfig(MainActivity.this).soundOn()){rgTab.setSoundEffectsEnabled(true);rgTab.playSoundEffect(SoundEffectConstants.CLICK);//按键音效}switch(checkedId){case R.id.rb_1:break;case R.id.rb_2:break;case R.id.rb_3:break;}}};
另外,碰到GridView和ListView中item下绑定的控件,必须也得添加音效的设置了,这点不能忘记。
总结:建议在项目中尽量使用自定义的控件,这样不必每处都修改了
2.通过SoundPool播放自定义音效
参考http://blog.csdn.net/qq435757399/article/details/8010015
里面说的已经很详细了,我之前的测试结果是,好像会先播放系统自带的点击音效,再接着播放我们自定义的音效,应该可以通过在xml布局中为控件添加android:soundEffectsEnabled="false"来避免吧
欢迎大家指出不当之处!!
android:为你的app设置音效相关推荐
- Android自定义壁纸预览界面,Android仿主流壁纸App设置界面
摘要:项目中做到在线壁纸应用,在壁纸设置界面也是参考了主流壁纸应用的做法,例如小米,vivo,搜狗等都是采用了类似下图的界面布局.这里将介绍如何做出类似布局和功能. 在图中,当手指滑动滑块的时候,背景 ...
- Android使用SharedPreferences存储APP设置参数
一.什么是SharedPreferences? android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据. Android数据持久化方法中最简单的一 ...
- android 让app全屏显示,Android app设置全屏模式
Android中,为APP设置全屏模式,主要有如下几种方式: 在manifest中设置 在项目中找到AndroidManifest.xml配置文件,找到Activity所在的节点,添加theme. p ...
- React Native App设置amp;Android版发布
React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native ...
- android 11.0 12.0第三方输入法app设置系统默认输入法
1.概述 在11.0 12.0的产品开发中,有功能需要要求设置默认输入法,替换掉系统的输入法,所以这就需要了解设置 输入法的相关功能需求,然后根据输入法包名来设置默认输入法 2.第三方输入法app设置 ...
- android 9.0 10.0 设置上网应用白名单(上网app白名单)
1.概述 在10.0的系统产品开发中,进行网络模块开发中,根据客户要求设置某些app可以上网,某些app不可以上网,就是所谓的网络白名单功能,而系统整个网络模块都是由NMS服务负责通讯的 2.设置上网 ...
- Android App 设置系统时间,语言和时区、系统重启
文章目录 说明 1. 修改系统时间 1. 设置系统时间(仅设置xx:xx) 2. 设置系统日期(仅设置到xxxx年xx月xx日) 3.设置系统是否自动获取时间 4.判断系统是否自动获取时间 2. 修改 ...
- android 12.0 第三方输入法app设置系统默认输入法
1.概述 在12.0的产品开发中,有功能需要要求设置默认输入法,替换掉系统的输入法,所以这就需要了解设置输入法的相关功能需求,然后根据输入法包名来设置默认输入法 2.第三方输入法app设置系统默认输入 ...
- Android App设置成Launch
做这个的需求是因为要做开机自启,但是通过广播的方式会有延迟,所以采用了这种方式,把app设置成launch,这样开机就不会再进入系统的桌面,直接进入app 1.<application>中 ...
最新文章
- python-eggs异常解决方法
- Leetcode-探索 | 旋转数组
- scihub只能用doi查吗_同步带轮齿形加工只能用滚齿机吗?
- mysql128位整数_mysql的数据类型
- Oracle执行计划中 并行和BUFFER SORT的问题
- 云软件——艺术字符设计!【推荐】
- Worklight学习-第一个Worlight项目
- 【字符串】旋转字符串
- [BScroll warn]: Can not resolve the wrapperDOM. .......
- ETL最佳实践-NiFi
- Win2019 ServerManager.exe 0xc0000135 应用程序错误
- 中国最美的100首情诗
- win7桌面计算机丢失,W7电脑系统msvcp120.dll丢失的解决方法
- 年薪60w的程序员与年薪6w的极品程序员,差距怎么这么大呢?
- WIN10下删除Hiberfil.sys文件
- jfinal与bootstrap的登出实战
- python中raise啥意思_python raise什么意思
- 基因分子生物学~DNA双螺旋
- 基于jsp,java,javaweb毕设项目大全
- js+css+html实现放大镜效果