多媒体之播放音频(二)——SoundPool(播放简短提示音)
来源:互联网 发布:js ts转码器 编辑:程序博客网 时间:2024/05/16 00:43
Mediaplay每次播放音乐都需要加载,对于手机提示音这是不必要的。所以Android提出了SoundPool 用来播放简短的提示音。SoundPool的特点是将文件全部存到内存中。
这里我们补充一点小知识,如果用多媒体播放音视频时,可能用到一个开关:
另外我们之前利用MediaPlayer播放音乐时,有些图片加载不出来,可以利用第三方提供的图片显示的方法:
(jar包在我的资源里。)
用法:
前提:将音频文件放到res下的raw文件夹下。
在API 21版本之前,直接new SoundPool实例即可 :
1.创建SoundPool实例
pool=new SoundPool(2,AudioManager.STREAM_MUSIC,0);
API:
第一个参数:最大播放的音频数量
第二个参数:流的类型,在AudioManager中
第三个参数:音频质量,默认为0;
2.加载音频
pool.load(getApplicationContext(),R.raw.outgoing,1);
API对load的介绍:
我们在这里用第三个构造器:
第一个参数:上下文
第二个参数:音频ID地址
第三个参数:优先级
3.播放音频
例如: pool.play(voiceID,1,1,0,-1,1);
第一个参数:soundID,由load方法返回
第二个参数:左声道(0.0-1.0)
第三个参数:右声道(0.0-1.0)
第四个参数:优先级
第五个参数:是否循环(0表不循环,-1表一直循环)
第六个参数:失真度(范围0.5-2.0,1表正常)
特别注意:由于load加载需要一段时间,所以我们在onCreate中就初始化,load完成,在点击事件中play,这样才能正常播放出提示音。
在API 21版本之后,用SoundPool.Builder :
1.创建SoundPool.Builder 实例
SoundPool.Builder builder = new SoundPool.Builder();
2.准备提示音类型
//.利用AudioAttributes,先将提示音的类型准备好 AudioAttributes attributes = new AudioAttributes.Builder().setLegacyStreamType(AudioManager.STREAM_MUSIC).build();
3.利用builder设置提示音类型和最大播放数量
builder.setMaxStreams(2).setAudioAttributes(attributes)
4.利用builder建池Pool
builder.build();
5.之后的步骤就和21之前的版本从第2步一样了,需要load加载后,再play
范例:
1.创建播放提示音初始化的方法:
2.在onCreate()方法中调用初始化方法,在点击事件中play()。
- 多媒体之播放音频(二)——SoundPool(播放简短提示音)
- Android第八讲——多媒体(二)SoundPool 播放简短铃声
- Android --- 多媒体应用(SoundPool播放音频)
- Android多媒体——(MidiaRecorder音频录制/视频播放surface/Soundpool提示音/调用系统摄像头camera)
- Android 多媒体应用——SoundPool音频播放
- Android频繁播放简短音频解决方案---SoundPool
- Android ——SoundPool播放音频
- Android—多媒体(音频播放)
- SoundPool(播放小音频)
- Android 多媒体:SoundPool—简短小音效
- android SoundPool播放简短音乐文件
- android 音频播放 SoundPool
- Android SoundPool播放音频
- 使用soundPool播放音频
- 使用SoundPool播放音频
- Android SoundPool播放音频
- SoundPool播放音频资源
- Android音频播放--SoundPool
- HP-UX磁盘管理:新磁盘发现、LVM创建与扩展
- 为什么要用C++编写服务端程序?
- HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值
- 访问修饰符 自我理解
- MongoDB 主从复制
- 多媒体之播放音频(二)——SoundPool(播放简短提示音)
- 【HDU 5445】Food Problem(DP)
- IOS 很多控件的讲解
- oracle存贮过程示例
- SQL Server数据库连接字符串整理
- 基于Java组播技术到安卓的实战应用于讲解(一)
- spring Jackson日期时间转换
- 自定义ImageView的学习
- CSS相对定位|绝对定位(五)之z-index篇