下面列出了怎么用android.media.audiofx.BassBoost的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
mEqualizer = new Equalizer(0, audioSesionId);
bassBoost = new BassBoost(0, audioSesionId);
bassBoost.setEnabled(true);
BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
bassBoostSetting.strength = (1000 / 19);
bassBoost.setProperties(bassBoostSetting);
presetReverb = new PresetReverb(0, audioSesionId);
presetReverb.setPreset(PresetReverb.PRESET_NONE);
presetReverb.setEnabled(true);
Settings.equalizerModel = new EqualizerModel();
mEqualizer.setEnabled(true);
unbindSystemEqualizer(audioSesionId);
}
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();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Settings.isEditing = true;
if (getArguments() != null && getArguments().containsKey(ARG_AUDIO_SESSIOIN_ID)){
audioSesionId = getArguments().getInt(ARG_AUDIO_SESSIOIN_ID);
}
if (Settings.equalizerModel == null){
Settings.equalizerModel = new EqualizerModel();
Settings.equalizerModel.setReverbPreset(PresetReverb.PRESET_NONE);
Settings.equalizerModel.setBassStrength((short) (1000 / 19));
}
mEqualizer = new Equalizer(0, audioSesionId);
bassBoost = new BassBoost(0, audioSesionId);
bassBoost.setEnabled(Settings.isEqualizerEnabled);
BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
bassBoostSetting.strength = Settings.equalizerModel.getBassStrength();
bassBoost.setProperties(bassBoostSetting);
presetReverb = new PresetReverb(0, audioSesionId);
presetReverb.setPreset(Settings.equalizerModel.getReverbPreset());
presetReverb.setEnabled(Settings.isEqualizerEnabled);
mEqualizer.setEnabled(Settings.isEqualizerEnabled);
if (Settings.presetPos == 0){
for (short bandIdx = 0; bandIdx < mEqualizer.getNumberOfBands(); bandIdx++) {
mEqualizer.setBandLevel(bandIdx, (short) Settings.seekbarpos[bandIdx]);
}
}
else {
mEqualizer.usePreset((short) Settings.presetPos);
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Settings.isEditing = true;
if (getArguments() != null && getArguments().containsKey(ARG_AUDIO_SESSIOIN_ID)) {
audioSesionId = getArguments().getInt(ARG_AUDIO_SESSIOIN_ID);
}
if (Settings.equalizerModel == null) {
Settings.equalizerModel = new EqualizerModel();
Settings.equalizerModel.setReverbPreset(PresetReverb.PRESET_NONE);
Settings.equalizerModel.setBassStrength((short) (1000 / 19));
}
mEqualizer = new Equalizer(0, audioSesionId);
bassBoost = new BassBoost(0, audioSesionId);
bassBoost.setEnabled(true);
BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
bassBoostSetting.strength = Settings.equalizerModel.getBassStrength();
bassBoost.setProperties(bassBoostSetting);
presetReverb = new PresetReverb(0, audioSesionId);
presetReverb.setPreset(Settings.equalizerModel.getReverbPreset());
presetReverb.setEnabled(true);
mEqualizer.setEnabled(true);
if (Settings.presetPos == 0) {
for (short bandIdx = 0; bandIdx < mEqualizer.getNumberOfBands(); bandIdx++) {
mEqualizer.setBandLevel(bandIdx, (short) Settings.seekbarpos[bandIdx]);
}
} else {
mEqualizer.usePreset((short) Settings.presetPos);
}
}
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);
}
public BassBoost getBassBoost() {
if (released) {
released = false;
try {
init();
} catch (Throwable x) {
bass = null;
Log.w(TAG, "Failed to create bass booster.", x);
}
}
return bass;
}
public void apply(Equalizer equalizer, BassBoost boost, LoudnessEnhancerController loudnessController) {
for (short i = 0; i < bandLevels.length; i++) {
equalizer.setBandLevel(i, bandLevels[i]);
}
equalizer.setEnabled(enabled);
if (bass != 0) {
boost.setEnabled(true);
boost.setStrength(bass);
}
if (loudness != 0) {
loudnessController.enable();
loudnessController.setGain(loudness);
}
}
/**
* @param media player from apollo service.
*/
public static void initEqualizer(MediaPlayer player, Context context){
releaseEqualizer();
int id = player.getAudioSessionId();
mEqualizer = new Equalizer(1,id);
mBoost = new BassBoost(1, id);
updateEqualizerSettings(context);
}
private void restoreBassBoost() {
mBassBoost = new BassBoost(Integer.MAX_VALUE, mSessionId);
synchronized (SETTINGS_LOCK) {
mBassBoost.setStrength((short) mBassBoostSettings.strength);
}
mBassBoost.setEnabled(true);
}
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();
}
}
private void init() {
equalizer = new Equalizer(0, audioSessionId);
bass = new BassBoost(0, audioSessionId);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
loudnessAvailable = true;
loudnessEnhancerController = new LoudnessEnhancerController(context, audioSessionId);
}
}
public BassBoost getBassBoost() {
if(released) {
released = false;
try {
init();
} catch (Throwable x) {
bass = null;
Log.w(TAG, "Failed to create bass booster.", x);
}
}
return bass;
}
public void apply(Equalizer equalizer, BassBoost boost, LoudnessEnhancerController loudnessController) {
for (short i = 0; i < bandLevels.length; i++) {
equalizer.setBandLevel(i, bandLevels[i]);
}
equalizer.setEnabled(enabled);
if(bass != 0) {
boost.setEnabled(true);
boost.setStrength(bass);
}
if(loudness != 0) {
loudnessController.enable();
loudnessController.setGain(loudness);
}
}
/**
* IBassBoost.Settings -> BassBoost.Settings
*
* @param settings IBassBoost.Settings
* @return BassBoost.Settings
*/
public static BassBoost.Settings convert(IBassBoost.Settings settings) {
BassBoost.Settings settings2 = new BassBoost.Settings();
settings2.strength = settings.strength;
return settings2;
}
/**
* BassBoost.Settings -> IBassBoost.Settings
*
* @param settings BassBoost.Settings
* @return IBassBoost.Settings
*/
public static IBassBoost.Settings convert(BassBoost.Settings settings) {
IBassBoost.Settings settings2 = new IBassBoost.Settings();
settings2.strength = settings.strength;
return settings2;
}
void onParameterChange(
android.media.audiofx.BassBoost effect,
int status, int param, short value) {
IBassBoost.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 BassBoost getBassBoost() {
return mBassBoost;
}
public void setBassBoost(BassBoost bassBoost) {
mBassBoost = bassBoost;
}
@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);
}
private void init() {
equalizer = new Equalizer(0, audioSessionId);
bass = new BassBoost(0, audioSessionId);
loudnessAvailable = true;
loudnessEnhancerController = new LoudnessEnhancerController(audioSessionId);
}
@Override
public void onParameterChange(
android.media.audiofx.BassBoost effect, int status, int param, short value) {
StandardBassBoost.this.onParameterChange(effect, status, param, value);
}
public StandardBassBoost(int priority, int audioSession) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException, RuntimeException {
super(new BassBoost(priority, audioSession));
getBassBoost().setParameterListener(mOnParameterChangeListener);
initializeForCompat();
}
/**
* Get underlying BassBoost instance.
*
* @return underlying BassBoost instance.
*/
public BassBoost getBassBoost() {
return (BassBoost) super.getAudioEffect();
}