7

次のコードを使用して、バス エフェクトをプログラムで適用しようとしています。

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

ただし、低音効果は現在のオーディオ セッションには適用されません。
何が悪いのか教えてください。

4

1 に答える 1

1

サポートされているかどうかを確認してください。

bassBoost = new BassBoost(0, 0);
bassBoost.setEnabled(true);

if (bassBoost.getStrengthSupported())
{
    short word1 = bassBoost.getRoundedStrength();
    bassBoost.setStrength(word1);
}

また、テスト対象がそれをサポートしていることを確認することもできます (デバイスに依存します)。以下を使用できます。

final Descriptor[] effects = AudioEffect.queryEffects();

// Determine available/supported effects 
for (final Descriptor effect : effects) {
    Log.d(TAG, effect.name.toString() + ", type: " + effect.type.toString());
}
于 2015-05-11T07:36:58.490 に答える