I am trying to apply the Bass Effects programmatically by using the following code:
BassBoost bassBoost = new BassBoost(0, audioSessionId);
bassBoost.setEnabled(true);
BassBoost.Settings bassBoostSettingTemp = bassBoost.getProperties();
BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
bassBoostSetting.strength = MAX_STRENGTH_FOR_BASS; // 1000
bassBoost.setProperties(bassBoostSetting);
bassBoost.setStrength((short) progress); // progress value from seek bar
But the bass effects aren't applied on the current audio session.
Please help me by showing me what's wrong.
Check whether it is supported or not.
bassBoost = new BassBoost(0, 0);
bassBoost.setEnabled(true);
if (bassBoost.getStrengthSupported())
{
short word1 = bassBoost.getRoundedStrength();
bassBoost.setStrength(word1);
}
And you can also check that whatever you're testing on supports it (it is device-dependent). You can use:
final Descriptor[] effects = AudioEffect.queryEffects();
// Determine available/supported effects
for (final Descriptor effect : effects) {
Log.d(TAG, effect.name.toString() + ", type: " + effect.type.toString());
}
来源:https://stackoverflow.com/questions/13320236/how-to-apply-bass-effect-programmatically-in-android