您的位置:首页 > 移动开发 > Android开发

android 音效处理(1)

2016-05-05 10:08 375 查看
在Android 2.3中,对音频播放提供了更强大的音效支持,其实现位于android.media.audiofx包中。

目前Android支持的音效包括:

1、重低音(BassBoost)

2、环 绕音(Virtualizer)

3、均衡器(Equalizer)

4、混响(EnvironmentalReverb)

5、可视化Visualizer)。

本文先来说说Android重低音及环绕音音效的添加。

为了使用音效处理需要在AndroidManifest.xml 添加相应的权限:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />


1.重低音

BassBoost通过放大音频中的低频音来实现重低音特效。重低音的细节由OpenSL ES 1.0.1定义。

为了在通过AudioTrack、MediaPlayer进行音频播放时具有重低音特效,创建BassBoost对象

new BassBoost(0, object.getAudioSessionId());


BassBoost的常用方法如下:

getRoundedStrength() //获取特效力度,特效力度值在0~1000间变化

setStrength() //设置特效力度

下面是BassBoost的一般使用过程:

BassBoost mBassBoost = new BassBoost(0, session); //优先级为0
if (mBassBoost.getStrengthSupported())
{
short strength = mBassBoost.getRoundedStrength();
mBassBoost.setStrength((short)strength);
}


2.环绕音

环绕音依赖于输入和输出通道的数量和类型,需要打开立体声通道。通过放置音源于不同的

位置,环绕音完美地再现了声音的质感和饱满感。在创建Virtualizer实例时,在音 频框架层

将会同时创建一个环绕音引擎。环绕音的细节由OpenSL ES 1.0.1规范定义。

为了在通过AudioTrack、MediaPlayer进行音频播放时具有环绕音特效,在构建Virtualizer实例

时指明音频流的会话ID即可。如果指定的会话ID为0,则Virtualizer作用于主要的音频输出混

音器(mix)。

Virtualizer的常用方法如下:

getRoundedStrength() //获取特效力度,特效力度值在0~1000间变化

setStrength() //设置特效力度

下面是Virtualizer的一般使用过程:

Virtualizer mVirtualizer= new Virtualizer (0,     mMediaPlayer.getAudioSessionId()); //优先级为0
if (mVirtualizer.getStrengthSupported())
{
short strength = mVirtualizer.getRoundedStrength();
mVirtualizer.setStrength((short)strength);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: