我用EQ創建mediaPlayer,當我設置EQ樂隊時它工作正常。我有代碼列出所有預設,更改我想設置預設爲EQ,但我得到bad parameter value
。Equalizer.usePreset引發無效參數異常
這是我在我的日誌:
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)
如果我在usePreset()
之前使用setBandLevel()
它不會引發異常,但我不確定這是否是正確的方式。 編輯:setBandLevel與異常無關。它只是隨機彈出,80%的嘗試。
更新:我注意到,這隻發生在三星S3設備(現在)上。在Asus TF101上運行良好。
任何幫助表示讚賞。
下面是代碼:
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
mEqualizer.usePreset((short)mEQPresetPos);
向我們展示您如何調用均衡器的代碼。 – RvdK
我用代碼更新了問題。 – cucko
我不明白這個代碼有時會如何工作,有時會拋出異常,對於相同的mEQPresetPos值。 – cucko