即使api> = 9,也不总是支持均衡器?

时间:2012-05-10 14:27:40

标签: android operation equalizer audioeffect

在启用均衡器功能之前,我检查api级别以确保它等于或大于9。 根据我从用户那里得到的报告,似乎抛出了一些异常:

代码eq = new Equalizer(0, mp.getAudioSessionId())可以引发:

Caused by: java.lang.UnsupportedOperationException: Effect library not loaded
at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:355)
at android.media.audiofx.Equalizer.<init>(Equalizer.java:149)

代码eq.getBandLevelRange()可以提升:

Caused by: java.lang.UnsupportedOperationException: AudioEffect: invalid parameter operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1182)
at android.media.audiofx.Equalizer.getBandLevelRange(Equalizer.java:206)

我不知道是否有解决方案,如果没有,我可以捕获这些异常并禁用均衡器,但我需要知道究竟是什么造成了这种情况,所以我可以通知我的用户而不会让他们感到沮丧。

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,这是因为当我完成它时,我的均衡器上没有调用release()。显然,如果存在太多的AudioEffect,本机库将不允许实例化新的AudioEffect。