点击按钮播放声音
来源:互联网 发布:家庭网络拓扑图 nas 编辑:程序博客网 时间:2024/06/08 23:48
我们都知道,进行音频播放的时候大多都会采用mediaplaer,但是他的生成和销毁会占用很大的资源。
例如在五子棋游戏中,如果每次都采用将会给系统带来太多资源的浪费。这时候我们就应该采用soundpool
Android提供了另外一种,叫做SoundPool,它适合播放那些需要反复播放,但时间较短的音效。它支持同时播放多种声音,这些声音在系统开始时会加载到列表中,按照这些声音的id,我们可以调用这些音效。
下面我们进入一个实例看看SoundPool到底是怎么工作的。
例如,现在在一个五子棋游戏中,我们需要在棋子落盘的时候播放一段声音。我们可以利用SoundPool,因为它时间很短,而且需要反复播放,并且我们不希望声音占用太大资源。
先看看代码:
private SoundPool soundPool;
soundPool= newSoundPool(10,AudioManager.STREAM_SYSTEM,5);
soundPool.load(this,R.raw.collide,1);
soundPool.play(1,1, 1, 0, 0, 1);
代码非常简单,第一行是声明了一个SoundPool对象,这个一般是作为类的成员属性出现的。第二行将soundPool实例化,第一个参数为soundPool可以支持的声音数量,这决定了Android为其开设多大的缓冲区,第二个参数为声音类型,在这里标识为系统声音,除此之外还有AudioManager.STREAM_RING以及AudioManager.STREAM_MUSIC等,系统会根据不同的声音为其标志不同的优先级和缓冲区,最后参数为声音品质,品质越高,声音效果越好,但耗费更多的系统资源。
第三行,系统为soundPool加载声音,第一个参数为上下文参数,第二个参数为声音的id,一般我们将声音信息保存在res的raw文件夹下,如下图所示。
第三个参数为声音的优先级,当多个声音冲突而无法同时播放时,系统会优先播放优先级高的。
第四行就是播放了,第一个参数为id,id即为放入到soundPool中的顺序,比如现在collide.wav是第一个,因此它的id就是1。第二个和第三个参数为左右声道的音量控制。第四个参数为优先级,由于只有这一个声音,因此优先级在这里并不重要。第五个参数为是否循环播放,0为不循环,-1为循环。最后一个参数为播放比率,从0.5到2,一般为1,表示正常播放
- 点击按钮播放声音
- 点击按钮播放声音简单实现。
- 点击按钮声音
- 添加按钮声音 播放声音
- android点击按钮发出声音
- MFC点击按钮发出声音_playsound_循环/单次播放_声音文件加入程序中
- 点击按钮播放音乐
- iPhone开发播放音乐与按钮声音
- 安卓点击按钮发出声音
- MediaPlayer--点击按钮,播放语音
- 提醒窗口,单按钮,多按钮,播放声音,播放声音振动
- 点击按钮播放音乐的demo
- 点击按钮实现直接播放视频功能
- [转][iPhone开发笔记]-音频播放/为按钮添加声音
- Unity3D开发之3D按钮的声音播放
- 播放声音
- 播放声音
- 播放声音
- nmon与nmonanalyser 系统性能分析(图表)利器
- C++学习笔记-函数数组传参
- utf8编码原理详解
- nyoj19 擅长排列的小明
- windows C++ gbk转为utf-8
- 点击按钮播放声音
- ;动手制作do0程序
- Android DEX安全攻防战
- 查询表达式基础(C# 编程指南)
- Redis源码分析(二十二)——CRC循环冗余校验
- pl/sql 分页存储过程
- 疑难汉字(有读音有注释)
- Android桌面 快捷方式的删除
- Xcode快速自动注释插件