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



在启用均衡器功能之前,我会检查 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)

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

感谢您的任何帮助

我遇到了同样的问题,这是由于我完成均衡器时没有在我的均衡器上调用 release() 引起的。 显然,如果已经存在太多音频效果,本机库将不允许实例化新的音频效果。

相关内容

  • 没有找到相关文章

最新更新