下面列出了怎么用android.media.audiofx.Virtualizer的API类实例代码及写法,或者点击链接到github查看源代码。
private void initialAudioEffect(final int audioSessionId) {
new Thread(new Runnable() {
@Override
public void run() {
try {
loudnessEnhancer = new LoudnessEnhancer(audioSessionId);
mBass = new BassBoost(0, audioSessionId);
mVirtualizer = new Virtualizer(0, audioSessionId);
mEqualizer = new Equalizer(0, audioSessionId);
canceler = AcousticEchoCanceler.create(audioSessionId);
control = AutomaticGainControl.create(audioSessionId);
suppressor = NoiseSuppressor.create(audioSessionId);
getPreference();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
public EqualizerHelper(int audioSessionId1, boolean equalizerEnabled) throws RuntimeException {
mEqualizer = new Equalizer(0, audioSessionId1);
mEqualizer.setEnabled(equalizerEnabled);
mVirtualizer = new Virtualizer(0, audioSessionId1);
mVirtualizer.setEnabled(equalizerEnabled);
mBassBoost = new BassBoost(0, audioSessionId1);
mBassBoost.setEnabled(equalizerEnabled);
mPresetReverb = new PresetReverb(0, audioSessionId1);
mPresetReverb.setEnabled(equalizerEnabled);
}
private void release(AudioEffect effect) {
if (null != effect) {
effect.setControlStatusListener(null);
effect.setEnableStatusListener(null);
if (effect instanceof Equalizer) {
((Equalizer) effect).setParameterListener(null);
} else if (effect instanceof BassBoost) {
((BassBoost) effect).setParameterListener(null);
} else if (effect instanceof Virtualizer) {
((Virtualizer) effect).setParameterListener(null);
}
effect.release();
}
}
/**
* IVirtualizer.Settings -> Virtualizer.Settings
*
* @param settings IVirtualizer.Settings
* @return Virtualizer.Settings
*/
public static Virtualizer.Settings convert(IVirtualizer.Settings settings) {
Virtualizer.Settings settings2 = new Virtualizer.Settings();
settings2.strength = settings.strength;
return settings2;
}
/**
* Virtualizer.Settings -> IVirtualizer.Settings
*
* @param settings IVirtualizer.Settings
* @return IVirtualizer.Settings
*/
public static IVirtualizer.Settings convert(Virtualizer.Settings settings) {
IVirtualizer.Settings settings2 = new IVirtualizer.Settings();
settings2.strength = settings.strength;
return settings2;
}
void onParameterChange(
android.media.audiofx.Virtualizer effect,
int status, int param, short value) {
IVirtualizer.OnParameterChangeListener listener = null;
listener = mUserOnParameterChangeListener;
if (listener != null) {
listener.onParameterChange(this, status, param, value);
}
}
private void release(AudioEffect effect) {
if (null != effect) {
effect.setControlStatusListener(null);
effect.setEnableStatusListener(null);
if (effect instanceof Equalizer) {
((Equalizer) effect).setParameterListener(null);
} else if (effect instanceof BassBoost) {
((BassBoost) effect).setParameterListener(null);
} else if (effect instanceof Virtualizer) {
((Virtualizer) effect).setParameterListener(null);
}
effect.release();
}
}
public Virtualizer getVirtualizer() {
return mVirtualizer;
}
public void setVirtualizer(Virtualizer virtualizer) {
mVirtualizer = virtualizer;
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public musicHandler(musicPlayer Gh) {
mEvent = new Event("PLayer");
this.Gh = Gh;
loadStartup();
mediaplayer = new MediaPlayer();
mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
if(needPlay){
isPrepared = true;
play(needId);
}else{
isPrepared = true;
if(needStop){
needStop = false;
}else{
mediaplayer.start();
}
mediaplayer.setOnCompletionListener(OC);
mEvent.trigger(playerEvents.SONG_CHANGED);
}
}
});
needStop = true;
playByNumber(0);
EQs = new EqlizerSettings(Gh.getBaseContext());
bass = new BassBoost(0, mediaplayer.getAudioSessionId());
bass.setEnabled(true);
equlizer = new Equalizer(0, mediaplayer.getAudioSessionId());
equlizer.setEnabled(true);
virtualizer = new Virtualizer(0, mediaplayer.getAudioSessionId());
virtualizer.setEnabled(true);
if(android.os.Build.VERSION.SDK_INT >= 19){
loudness = new LoudnessEnhancer( mediaplayer.getAudioSessionId());
loudness.setEnabled(true);
}else{
loudness = null;
}
setEQs(EQs.isOn);
setBass(EQs.BASS);
setTrable(EQs.TRABLE);
setVoice(EQs.VOICE);
setVirtualizer(EQs.VIRCHULIZER);
setLoudnessEnhancer(EQs.LOUDNESS);
mEvent.trigger(playerEvents.EQ_CHANGED);
mEvent.trigger(playerEvents.PLAYER_COMPLETE);
}
@Override
public void onParameterChange(
android.media.audiofx.Virtualizer effect, int status, int param, short value) {
StandardVirtualizer.this.onParameterChange(effect, status, param, value);
}
public StandardVirtualizer(int priority, int audioSession) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException, RuntimeException {
super(new Virtualizer(priority, audioSession));
getVirtualizer().setParameterListener(mOnParameterChangeListener);
initializeForCompat();
}
/**
* Get underlying Virtualizer instance.
*
* @return underlying Virtualizer instance.
*/
public Virtualizer getVirtualizer() {
return (Virtualizer) super.getAudioEffect();
}