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

  显示原文与译文双语对照的内容
0 0

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

我有同样的问题,并且它是由于我的均衡器在我完成的时候不调用 release() 在我的均衡器。 显然,如果已经存在太多的AudioEffect,本地库将不允许实例化新的。

原作者:
...