android soundpool 播放音效,Android使用SoundPool播放短音效
前言
对于Android播放一些简短音效,例如提示音,或者铃声,相对于使用MediaPlayer,SoundPool可以节省更多资源,并且可以同时播放多个音效,而且可以针对不同音效设置不同播放品质
实现
SoundPool的具体作用,就不再阐述,直接贴代码
private SoundPool.Builder spBuilder;
private SoundPool soundPool;
private Integer[] fmSound = FmManager.getRawAudios();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (null == spBuilder) {
spBuilder = new SoundPool.Builder();
AudioAttributes.Builder builder = new AudioAttributes.Builder();
builder.setLegacyStreamType(AudioManager.STREAM_MUSIC);
spBuilder.setAudioAttributes(builder.build());
spBuilder.setMaxStreams(10);
}
if (null == soundPool) {
soundPool = spBuilder.build();
}
} else {
if (null == soundPool) {
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 10); //最多播放10个音效,格式为Steam_music,音质为10
}
}
soundPool.setOnLoadCompleteListener(this);
if (null == fmArray) {
fmArray = new SparseIntArray();
}
if (null == streamArray) {
streamArray = new SparseIntArray();
}
for (int i = 0; i < fmSound.length; i++) {
fmArray.put(i + 1, soundPool.load(this, fmSound[i], 1)); //将需要播放的资源添加到SoundPool中,并保存返回的StreamID,通过StreamID可以停止某个音效
}
private void playFmByPosition(int resultId) {
if (null == soundPool || resultId < 0 || fmArray == null || fmArray.size() < 0 || streamArray == null)
return;
LogUtils.e(resultId + "------------" + fmArray.size());
if (resultId < fmArray.size()) {
if (!FmPlaying.isPlay(resultId)) {
int fmPlayId = soundPool.play(fmArray.get(resultId + 1), 1, 1, 0, -1, 1);
streamArray.put(resultId, fmPlayId);
FmPlaying.setPlay(resultId, true);
} else {
soundPool.stop(streamArray.get(resultId));
streamArray.removeAt(resultId);
FmPlaying.setPlay(resultId, false);
}
}
}
static class FmPlaying {
private static SparseBooleanArray playArray = new SparseBooleanArray();
public static boolean isPlay(int position) {
return playArray.get(position, false);
}
public static void setPlay(int position, boolean play) {
playArray.put(position, play);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2019-11-27
android soundpool 播放音效,Android使用SoundPool播放短音效相关推荐
- android播放系统音效,Android用SoundPool播放音效
SoundPool可以用来播放一些较短的音效,如一些信息提醒之类的 先来说下会用到的参数 SoundPool(int maxStreams, int streamType, int srcQualit ...
- Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)
需要源码请点赞关注收藏后评论区留下QQ~~~ 一.铃声播放 虽然媒体播放器MediaPlayer既可用来播放视频,也可以用来播放音频,但是在具体的使用场合,MediaPlayer存在某些播音方面的不足 ...
- 【Android -- 音效】使用 SoundPool 播放音效
前言 SoundPool 一般用来 播放密集,急促而又短暂的音效,比如特技音效:Duang~,游戏用得较多,你也可以为你的 APP 添加上这个音效,比如酷狗音乐进去的时候播放"哈喽,酷狗&q ...
- android 播放短铃声,Android使用SoundPool播放短音效
前言 对于Android播放一些简短音效,例如提示音,或者铃声,相对于使用MediaPlayer,SoundPool可以节省更多资源,并且可以同时播放多个音效,而且可以针对不同音效设置不同播放品质 实 ...
- android 播放一段音效,android 之使用SoundPool播放音效(Duang~)
1.相关方法介绍: 1)构造方法: SoundPool(int maxStreams, int streamType, int srcQuality) 参数依次是: ①指定支持多少个声音,SoundP ...
- android学习笔记---43_音乐播放器,音频采集,音乐播放,使用SoundPool播放音效
43_音乐播放器 ------------------------------------------ 1.注意在string.xml中不可以使用java的关键字,因为用关键字的话,会和java内部冲 ...
- Android中的音频播放(MediaPlayer和SoundPool)
Android中音频和视频的播放我们最先想到的就是MediaPlayer类了,该类提供了播放.暂停.停止.和重复播放等方法.该类位于android.media包下,详见API文档.其实除了这个类还有一 ...
- Android SDK 提供的3套音频播放的API之玩转SoundPool,面试流程4轮技术面+1轮HR
1.SoundPool的使用 1.1.准备音频资源 将准备的音频文放入assets文件夹下或者res下的raw文件夹下: assets下可以再新建文件夹批量加载,而raw只能同级存放单个加载: 在as ...
- Android 音频开发(三) 如何播放一帧音频数据上
上一篇只要介绍了如何采集一帧音频,本篇就讲述如何播放一帧音频数据,这一篇我将分倆篇来详细介绍. Android SDK 提供了3套音频播放的API,分别是:MediaPlayer,SoundPool, ...
- MusicPlayer音乐播放器Android
MusicPlayer音乐播放器Android [音频采集] 你可以使用手机进行现场录音,实现步骤如下: 第一步:在功能清单文件AndroidManifest.xml中添加音频刻录权限: <us ...
最新文章
- 中服公司企业信息化的ERP系统选择
- python信号与槽_Python信号和插槽(1),python,与,一
- python官方网站地址-一些python牛人地址分享
- 推荐系统笔记:矩阵分解+基于邻居的模型
- 张永伟 大数据会成为互联时代重要变革
- 使用Adobe Lifecycle ES将若干个word合并成一个PDF
- webview键盘自适应_黑爵毛茸茸机械键盘:感受来自治愈系的暖萌
- 增强服务器安全性能,加强Linux服务器安全的20项建议
- docker网络--理解linux底层实现机制、docker网络模式
- Makefile的几个赋值运算符(转:笔记)
- python输入的方式有几种_Python输入方式具体的三种实现方式
- 项目团队中的五种人(之一)
- 勤于思考:Asp.Net MVC Html.TextBoxFor日期格式化
- Java面试题:热情盛夏,分享Java大厂面试百题
- 利用 SQL Monitor 查看语句运行状态步骤
- 《金字塔原理》学习笔记 | 第4篇—演示的逻辑
- Hadoop学习笔记——HA
- Java实现CCF/CSP 201312-2 ISBN编号(零分!!!
- [Python数据分析]NBA的球星们喜欢在哪个位置出手
- ie 无人操作自动关闭_为什么一打开IE浏览器就自动关闭解决办法 IE浏览器打开后马上自动关闭了如何办...
热门文章
- 树莓派29/100 - 树莓派接上Kindle的墨水屏是什么体验?
- 【Unity】Unity Pivot 与 Center Globle 与Lical
- 2022年全国各省四级行政区划Shp矢量数据
- vue 请求word文档流并打印预览
- 银河麒麟服务器操作系统V10SP2安装虚拟化管理软件
- HDU2030-汉字机内码
- 建造者2全部岛屿_勇者斗恶龙建造者2全流程攻略介绍 通关流程攻略分享 蒙佐拉岛-游侠网...
- centos7下载php7.4
- 店铺淘客软件定制,1688分销软件OEM贴牌配合精细化运营提升店铺流量
- 印刷机软件测试,印刷测控条与测试版