1. 程式人生 > >android 音效處理(1)

android 音效處理(1)

在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);
}