+-

我正在使用EQ创建mediaPlayer,当我设置EQ频段时,它工作正常.我有代码列出所有预设,在更改时我想将预设设置为EQ,但我的参数值不好.
这就是我在日志中的内容:
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设备上(目前).适用于华硕TF101.
任何帮助表示赞赏.
这是代码:
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
mEqualizer.usePreset((short)mEQPresetPos);
最佳答案
这可能是由于两个原因.
您的设备可能不支持均衡器.但正如你所说,你得到了预设列表.这意味着它正在支持.
现在问题可能是你有两个均衡器实例.你必须释放均衡器.
或尝试
加
equalizer.setEnabled(假);
在创建另一个之前.
点击查看更多相关文章
转载注明原文:android – Equalizer.usePreset抛出无效的参数异常 - 乐贴网