首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Equalizer.usePreset引发无效的参数异常

Equalizer.usePreset引发无效的参数异常
EN

Stack Overflow用户
提问于 2013-09-29 12:37:57
回答 1查看 2K关注 0票数 4

我正在用EQ创建mediaPlayer,当我设置EQ波段时,它工作得很好。我有列出所有预置的代码,在更改时我想将预设设置为EQ,但我得到了bad parameter value

这就是我日志里的内容:

代码语言:javascript
复制
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()之前使用usePreset(),它不会抛出异常,但我不确定这是否是正确的方法。编辑: setBandLevel与异常无关。它只是随机弹出,80%的尝试。

更新:我注意到这种情况只发生在三星的S3设备上(目前)。在华硕TF101上工作得很好。

任何帮助都是非常感谢的。

以下是代码:

代码语言:javascript
复制
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
mEqualizer.usePreset((short)mEQPresetPos);
EN

回答 1

Stack Overflow用户

发布于 2015-03-04 11:36:41

可能有两个原因。

您的设备可能不支持均衡器。但就像你说的,你得到了一份预先设定的名单。这意味着它是在支持。

现在的问题可能是,您有两个均衡器实例。你必须释放均衡器。

或者尝试

添加equalizer.setEnabled(false);

然后再创建另一个。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19078116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档