博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android SoundPool
阅读量:6244 次
发布时间:2019-06-22

本文共 1257 字,大约阅读时间需要 4 分钟。

 SoundPool

SoundPool 主要用于播放一些较短的声音片段,与 MediaPlayer 相比, 
SoundPool 的优势在于 CPU 资源占用量低和反应延迟小。另外, 
SoundPool 还支持自行设置声音的品质、音量、 播放比率等参数。
SoundPool(int maxStreams, int streamType, int srcQuality) 
:第一个参数指定支持多少个声音;第二个参数指定声音类型:第三个参数指定声音品质。
使用 SoundPool 播放声音的步骤如下:
1)调用 SoundPool 的构造器创建 SoundPool 的对象。
2)调用 SoundPool 对象的 load() 方法从指定资源、文件中加载声音。最好使用 HashMap< Integer, Integer> 来管理所加载的声音。
3)调用 SoundPool 的 play 方法播放声音。
1.初始化对象
SoundPool soundPool;
HashMap<Integer, Integer> musicId = new HashMap<Integer, Integer>();
2.创建SoundPool对象添加声音文件
// 初始化 soundPool, 设置可容纳 12 个音频流,音频流的质量为 5 ,
soundPool = new SoundPool(12, 0, 5);
// 通过 load 方法加载指定音频流,并将返回的音频 ID 放入 musicId 中
musicId.put(1, soundPool.load(this, R.raw.if1, 1));
musicId.put(2, soundPool.load(this, R.raw.if2, 1));
musicId.put(3, soundPool.load(this, R.raw.if3, 1));
3.调用播放
/**
* SoundPool 提供的播放指定声音的方法:
* int play(int soundID, float leftVolume, float rightVolume, int
* priority, int loop, float rate) :该方法的第一个参数指定播放哪个声音; leftVolume 、
* rightVolume 指定左、右的音量: priority 指定播放声音的优先级,数值越大,优先级越高; loop
* 指定是否循环, 0 为不循环, -1 为循环; rate 指定播放的比率,数值可从 0.5 到 2 , 1 为正常比率。
*/
soundPool.play(musicId.get(1), 1, 1, 0, 0, 1);
注意 soundPool.play() 返回一个当前播放音乐的 int soundID 这个Id用于停止使用
如果 soundPool.stop(soundID);  soundPool.pause(soundID);

转载地址:http://qsvia.baihongyu.com/

你可能感兴趣的文章
Linux 上ps 命令的使用
查看>>
祛斑用什么产品比较好?简单一步轻松搞定
查看>>
OkHttp发起请求源码阅读(一)
查看>>
复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
查看>>
java spring cloud版b2b2c社交电商-配置中心svn示例和refresh
查看>>
回顾我的三年前端|掘金技术征文
查看>>
如何保障微服务架构下的数据一致性?
查看>>
开源框架和开源项目
查看>>
算法学习之路|二分图的最大匹配—匈牙利算法(Dfs实现)
查看>>
iOS UIView高级动画 关键帧动画
查看>>
java版spring cloud+spring boot+redis多租户社交电子商务平台 (六)分布式配置中心(Spring Cloud Config)...
查看>>
一个初学者是如何制作移动端B站画友社区的
查看>>
互联网分布式微服务云平台规划分析--平台整体规划
查看>>
Swift对象转为C指针
查看>>
Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
查看>>
ThinkSNS系统升级,版本多样化
查看>>
ecshop使用smtp发送邮件
查看>>
RubyInstaller
查看>>
21. SQL -- TSQL架构,系统数据库,文件,SQL 认证,TSQL语句
查看>>
CentOS6.0添加163和epel源
查看>>