EQ を使用して mediaPlayer を作成しています。EQ バンドを設定すると正常に動作します。すべてのプリセットを一覧表示するコードがあり、変更時にプリセットを EQ に設定したいのですが、取得してbad parameter value
います。
これは私のログにあるものです:
09-29 14:29:24.810: W/System.err(27829): java.lang.IllegalArgumentException: AudioEffect: bad parameter value
09-29 14:29:24.835: W/System.err(27829): at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1259)
09-29 14:29:24.835: W/System.err(27829): at android.media.audiofx.Equalizer.usePreset(Equalizer.java:342)
getNumberOfPresets() は 12 を返し、この例で設定するプリセットは 2 です (ただし、0 ~ 11 のすべての値に対して発生します)。
setBandLevel()
beforeを使用しusePreset()
ても例外はスローされませんが、これが正しい方法であるかどうかはわかりません。編集: setBandLevel は例外とは関係ありません。試行の 80% で、ランダムに飛び出します。
更新: これは (今のところ) Samsung S3 デバイスでのみ発生していることに気付きました。Asus TF101 で正常に動作します。
どんな助けでも大歓迎です。
コードは次のとおりです。
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
mEqualizer.usePreset((short)mEQPresetPos);