在开发手电筒应用的处理音效的过程中,看网上使用的是MediaPlayer,因为音效一般都比较短,所以这里使用的是SoundPool,如下:

SoundPool soundPool=new SoundPool(2,AudioManager.STREAM_MUSIC,0); //第一个参数,2为可以同时播放两个音效,第二是使用什么音频流,第三个暂未使用,传0。

AssetManager assetMgr=getAssets(); 
AssetFileDescriptor assetfileDescriptor=assetMgr.openFd("sounds/light_switch_on.ogg");//获得音效,推荐使用ogg格式的来做为音效。
int soundOnId=soundPool.load(assetfileDescriptor, 1);//加载音效,并返回一个整形数为id,这里第二个参数暂未使用,设置为1。
assetfileDescriptor=assetMgr.openFd("sounds/light_switch_off.ogg");
int soundOffId=soundPool.load(assetfileDescriptor, 1);

play方法里面第一个参数接受的是音效的id,第二和第三个参数分别是左右通道的音量(从0到1),第四个为优先级暂时没有被使用,传0,第五个是指定音效循环播放的频率,0为不循环,最后一个是播放速度,大于1是加快的,小于1是变慢的。

soundPool.play(soundOnId, 1, 1, 0, 0, 1);

soundPool.play(soundOffId, 1, 1, 0, 0, 1);

不需要的时候可以卸载以释放内存:

soundPool.unload(soundOffId);

最新文章

  1. C#委托的一次"甜蜜"接触
  2. rabbitmq之back queue草稿
  3. T-SQL编程练习(带注释)
  4. Unable to execute dex: java.nio.BufferOverflowException.解决办法
  5. shopnc 支持 支付宝快捷登陆 shopnc权限验证原理说明
  6. Js 一些方法(一)
  7. svn中的图标解释
  8. Android经验之谈1
  9. 一些浏览器HACKS
  10. hadoop+spark+mongodb+mysql+c#
  11. 漫话Unity3D(一)
  12. leetCode Min Stack解决共享
  13. 支持缩放的fresco图片控件 —— fresco sample: ZoomableDraweeView
  14. 面试题:使用LinkedList来模拟一个堆栈或者队列数据结构
  15. 使用Boost program_options控制程序输入
  16. mysql索引结构及其原理
  17. Windows7上安装Ubuntu双系统
  18. tomcat Server启动带profile文件
  19. [转]HashMap的实现原理
  20. hdu 3706 Second My Problem First 单调队列

热门文章

  1. 新型的Hbb项目目录结构
  2. canvas画圆(一)
  3. 网页端打开手机上的app
  4. MySql触发器语法总结
  5. JS身份证号码校验
  6. 51nod1240(莫比乌斯函数)
  7. HTML文档可以包含的内容
  8. Enterprise Achitect使用与类的关系的简单介绍
  9. dbca建库sys用户被锁
  10. 【DWR系列03】- DWR主要类详解