在Android 2.3中,對音頻播放提供了更強大的音效支持,其實現(xiàn)位于android.media.audiofx包中。目前Android支持的音效包括:重低音(BassBoost)、環(huán)
繞音(Virtualizer)、均衡器(Equalizer)、混響(EnvironmentalReverb)和可視化Visualizer)。本文先來說說Android重低音及環(huán)繞音音效的添加。
1.重低音
BassBoost通過放大音頻中的低頻音來實現(xiàn)重低音特效。重低音的細節(jié)由OpenSL ES 1.0.1定義。
為了在通過AudioTrack、MediaPlayer進行音頻播放時具有重低音特效,在構(gòu)建BassBoost實例時指明音頻流的會話ID即可。如果指定的會話ID為0,則BassBoost作用于主要的音頻輸出混音器(mix)上,BassBoost將會話ID指定為0需要"android.permission.MODIFY_AUDIO_SETTINGS"權(quán)限。
BassBoost的常用方法如下:
getRoundedStrength() //獲取特效力度,特效力度值在0~1000間變化
setStrength() //設(shè)置特效力度
下面是BassBoost的一般使用過程:
BassBoost mBassBoost = new BassBoost(0, session); //優(yōu)先級為0
if (mBassBoost.getStrengthSupported())
{
short strength = mBassBoost.getRoundedStrength();
mBassBoost.setStrength((short)strength);
}
2.環(huán)繞音
環(huán)繞音依賴于輸入和輸出通道的數(shù)量和類型,需要打開立體聲通道。通過放置音源于不同的位置,環(huán)繞音完美地再現(xiàn)了聲音的質(zhì)感和飽滿感。在創(chuàng)建Virtualizer實例時,在音
頻框架層將會同時創(chuàng)建一個環(huán)繞音引擎。環(huán)繞音的細節(jié)由OpenSL ES 1.0.1規(guī)范定義。
為了在通過AudioTrack、MediaPlayer進行音頻播放時具有環(huán)繞音特效,在構(gòu)建Virtualizer實例時指明音頻流的會話ID即可。如果指定的會話ID為0,則Virtualizer作用于主要的音頻輸出混音器(mix)上,Virtualizer將會話ID指定為0需要"android.permission.MODIFY_AUDIO_SETTINGS"權(quán)限。
Virtualizer的常用方法如下:
getRoundedStrength() //獲取特效力度,特效力度值在0~1000間變化
setStrength() //設(shè)置特效力度
下面是Virtualizer的一般使用過程:
Virtualizer mVirtualizer= new Virtualizer (0, mMediaPlayer.getAudioSessionId()); //優(yōu)先級為0
if (mVirtualizer.getStrengthSupported())
{
short strength = mVirtualizer.getRoundedStrength();
mVirtualizer.setStrength((short)strength);
}