音视频播放 第十一章 多媒体应用开发( 三 )


的具体效果作用在音频数据上,只管播放音频,二者通过(通过的()方法可以获得)关联起来 。可以说,音效的处理对是透明的,具体的处理由框架进行 。
2.1 是音效控制基类,开发者不应直接使用此类,应该使用它的派生类:
以上音效包含在.media.包中
当创建时,如果音频效果应用到一个具体的和的实例,应用程序必须指定该实例的音频 ID,如果要应用音频输出混响的效果必须制定 0.
要创建音频输出混响(音频0)要求要有 S权限
2.2 : 重低音调节器重低音调节器的用法
1. 初始化
private BassBoost mBass =new BassBoost(0, mMediaPlayer.audioSessionId)
第一个参数代表该音效控制器的优先级,这里设置为0,第二个参数仍然是的id
2. 启用
为了启用它们同样需要调用(true)方法
3. 调用相关方法
的常用方法如下:
2.3 环绕音
环绕音依赖于输入和输出通道的数量和类型,需要打开立体声通道 。通过放置音源于不同的位置,环绕音完美地再现了声音的质感和饱满感 。
1. 初始化
Virtualizer mVirtualizer= new Virtualizer (0, mMediaPlayer.getAudioSessionId()); //优先级为0
如果指定的会话ID为0,则作用于主要的音频输出混音器(mix) 。
2. 启用
为了启用它们同样需要调用(true)方法
3. 调用相关方法
的常用方法如下:
Virtualizer mVirtualizer= new Virtualizer(0,mPlayer.getAudioSessionId()); //优先级为0if (mVirtualizer.getStrengthSupported()){short strength = mVirtualizer.getRoundedStrength(); mVirtualizer.setStrength((short)strength);}
2.4 均衡器
均衡器的原理:调整某一频率声音的分贝 。所以我们在使用均衡器之前需要先获取当前系统支持的所有可调整的频率,例如有些手机目前仅支持60、230、910、3600、这些频率 。
1. 初始化
Equalizer mEqualizer = new Equalizer(0, mPlayer.getAudioSessionId()); //优先级为0
2. 启用
为了启用它们同样需要调用(true)方法
3. 调用相关方法
的常用方法如下:
//获取能够设置的最小和最大分贝数
val= .[0]
val= .[1]
```
2.5 预设混响处理:
一个声音在产生后会往各个方向传播 。如果这个声音是在室内产生的,接收方会首先听到音源本身发出的声音,然后听到来自墙壁、天花板和地板的回声 。这些回声又会在传播到障碍物上时产生二次回声、三次回声…接收方会持续不断地听到声音,这每一次声音的辨识度越来越低,且响度随时间衰减 。混响器()对于音频接收者的环境建模非常重要,它可以被用于模拟在不同环境中播放音乐产生的效果,或者在游戏中为玩家生成更加沉浸式的音频体验 。APP 可以通过预设混响器提前配置全局的混响参数,这种方式在为音乐播放添加混响效果时被广泛使用 。如果 APP 需要配置更高级的环境声混响参数,最好使用环境声混响器来实现 。
1. 初始化
PresetReverbmPresetReverb = new PresetReverb(0, mPlayer.getAudioSessionId());//同时要初始化一个均衡器和一个或多个List用于存储预设音场的名字和值
2. 启用
为了启用它们同样需要调用(true)方法
3. 获取所有预设名字()
4. 使用作为选择工具,并且在选择监听中使用均衡器(预设音场控制器只定义了音场,具体实现需要均衡器)
5. 设定音场