文档章节

android开发笔记之多媒体—SoundPool(音效池)

Mr_Nice
 Mr_Nice
发布于 2016/05/22 20:00
字数 462
阅读 6
收藏 0

使用SoundPool播放音效

——如果应用程序经常需要播放密集,短促的音效。这时还用Mediaplayer就显得不合适。

——MediaPlayer的缺点:资源占用量较高,延迟时间较长不支持多个音频同时播放。

——SoundPool使用音效池来播放一些较短的声音片段,它的优势资源占用量低和反应延迟小。

使用步骤:

1.创建对象:new SoundPool(num,stream,0)

    第一个参数指定支持多少个声音

    第二个参数指定声音类型

    第三个参数指定声音品质,还没有启作用

    如:soundPool = new SoundPool(3,AudioManager.STREAM_MUSIC, 0);

    在android21的版本建议使用SoundPool中的内部类来创建:

    SoundPool pool=new SoundPool.Builder().setMaxStreams(3).build();   

2.添加音频:load()加载声音,最好使用hashMap来管理:

HashMap<Integer,Integer>

load(Context context,int resId,int priority)

load(String path,int priority)priority播放声音的优先级,目前没有启作用  

如:int id=soundPool.load(this,R.raw.nudge,1)
            map.put(1,soundPool.load(this,R.raw.nudge,1));
           返回的该声音的ID,之后就根据该ID来播放指定声音

3.播放:play(int,float,float,int,int,float)

      第一个参数指定播放哪个声音
      第二三个参数指定左右音量(0.0-1.0)
      第四个参数播放声音的优先级,值越大越优先播放,0最小
      第五个参数是否循环,0不循环,-1循环
      第六个参数播放的比率,1为正常的,(范围0.5-2.0)  

      如:soundPool.play(pools.get(1), 1, 1, 0,0,1);

   暂停:pause()
   停止:stop()
   释放资源:release();       

注意:
1)在硬件较差的客户端中,SoundPool比MediaPlay使用延迟更大
2)避免使用SoundPool来播放歌曲获取做游戏的背景音乐。只有那些短促,密集的声音才考虑使用SoundPool进行播放。

© 著作权归作者所有

共有 人打赏支持
Mr_Nice
粉丝 0
博文 47
码字总数 39947
作品 0
广州
私信 提问
Android中的soundpool小结

之前只知道android中可以用mediaplayer播放音乐,原来今天才发现 可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声,而mediaplayer适合播放长点的。 1....

Carl_
2015/01/08
0
0
android开发中音频的使用

当进行android开发或游戏开发时,常常会涉及背景音乐的播放,以及短音效的使用 1.当涉及到背景音乐等长音乐播放时通常使用MediaPlayer类进行播放操作 MediaPlayer类常用方法: 1.public sta...

qq_38555940
05/28
0
0
Android SoundPool 的简单使用

之前只知道Android中可以用MediapLayer播放音乐,原来今天才发现可以用SoundPool,用SoundPool可以播一些短的反应速度要求高的声音,比如游戏中的爆破声,而MediapLayer适合播放长点的。 一般...

秀宇
2015/11/26
286
0
【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!

李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/312.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,...

迷途d书童
2012/03/19
0
0
一个通过切换不同activity来播放不同背景音乐的小例子

本文章转自:http://blog.csdn.net/yiyaaixuexi/article/details/6171383 一般的Android应用程序的音乐可以分为背景音乐和点击各种控件时的音效,前者一般为比较大的音乐文件,后者一般为比较...

天高空
2012/01/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

mybatis学习(2)

http://www.mybatis.org/spring/zh/factorybean.html 参考mybatis官网 Mybatis集成Spring: 使用Spring的IOC,将sqlSession(存在事物),交给Spring管理。 1.依赖jar包 <dependency> <g......

杨健-YJ
5分钟前
0
0
ES的性能优化

我们在很多场景下会用到ES帮助我们解决搜索问题,但是很多人了解只是停留在表面,如何深入的使用ES,并做针对性的性能优化呢? 批量提交 当大量的写任务时,可以采用批量提交的方案,但是需要...

春哥大魔王的博客
7分钟前
0
0
Linux下实现 OpenSSL 简单加密与解密字符串

场景 shell脚本中存在明文密码 客户要求禁止使用明文密码,密码做加密处理. 方案 在网上了解到了Linux OpenSSL加密解密工具 可以指定各种加密算法为字符,文件做加密处理. 加密的案例比较多,解...

linuxprobe16
10分钟前
0
0
解析Sharding-Sphere的SQL执行引擎

一、前言 Sharding-JDBC 是一款优秀的分库分表框架,从3.0开始,Sharding-JDBC更名为Sharding-Sphere,之前用Sharding-JDBC 2时,对于同库分表而言,sql执行是串行的,因为同数据源的connect...

冷血狂魔
12分钟前
0
0
Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略(一):自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用...

程序猿DD
26分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部