SoundPool控件
来源:互联网 发布:it创业项目 编辑:程序博客网 时间:2024/06/16 13:27
上一篇文章之中提到了Mediaplyer来播放音频。但是Mediaplyer有很多不足之处,
文章地址:http://blog.csdn.net/bobo8945510/article/details/52231162
Mediaplyer的缺点:--》资源占用量较高,延迟时间较长。
--》不支持多个音频同事播放
那好吧,这一章咱们来看看SoundPool控件(
SoundPool主要用于播放一些较短的声音片段,与Mediaplyer比较,SoundPool的优势在于CPU资源占用量低和反映延迟小。
SoundPool提供了一个构造器,该构造器可以指定它共支持多少个声音(也就是池的大小),声音的品质等。构造器如下:
--》SoundPool(int maxStreams,int streamType,int srcQuality):第一个参数指定支持多个声音,第二个参数指定声音的类型,第三个参数指定声音的品质!
--》int load(Context context,int resld,int priority):从resld所对应的资源加载声音。
--》int load(FileDescriptor fd,long offset,long length,int priority):加载fd所对应的文件的offset开始,长度为length的声音。
--》int load(AssetFileDescriptor afd,int priority):从afd所对应的文件中加载声音。
--》int load(String path,int priority):从path对应的文件去加载声音。
上面4个load方法中有一个priprity参数,该参数目前没有任何作用,,Android 建议将该参数设置为1.保持和未来的兼容性。
上面4个load方法加载声音之后,都会返回该声音的ID,以后程序就可以通过该声音的ID来播放指定声音,SoundPool提供播放指定声音的方法。
为了更好的管理SoundPool所加载的每个声音的ID,程序一般会使用一个HashMap<Integer,Integer>对象来管理音!
使用SoundPool播放声音步骤如下
2、调用SoundPool对象的load()方法从指定资源、文件中加载声音,最好使用HashMap<>来管理所加载的声音。
3、调用SoundPool的play方法播放声音
代码图片如下
实际使用SoundPool播放声音时有如下几点需要注意,SoundPool虽然可以一次性加载多个声音,但是由于内存限制,因此应该避免使用SoundPool来播放歌曲或者做游戏背景音乐,只有那些短促、密集的声音才考虑使SoundPool进行播放。
虽然SoundPool比MediaPlayer的效率好,但也不是绝对不存在餐延迟问题,尤其那些不好的手机中。SoundPool的延迟问题会很严重。
0 0
- SoundPool控件
- SoundPool控件
- Android常用控件之SoundPool
- soundpool
- SoundPool
- SoundPool
- soundpool
- soundpool
- SoundPool
- SoundPool
- SoundPool
- SoundPool
- SoundPool
- SoundPool
- SoundPool使用
- android - SoundPool
- MediaPlayer & SoundPool
- SoundPool使用
- 23种设计模式全解析
- cocos2d-x 3.2,Label,Action,Listener,Menu Item等简单用法
- Android-删除联系人
- C语言中结构体指针的定义和引用
- eclipse调试系统应用,如何制作签名
- SoundPool控件
- VS2015下载和安装
- maven POM.xml 标签详解
- 再写图像旋转算法
- #leetcode#Sum of Two Integers
- 关于ubuntu的sources.list总结
- 软工文档总结
- Linear Regression and Normal Equation
- 如何成为一个牛逼的C/C++程序员? (仔细阅读)