均衡器不一贯支持,即使API> = 9?(Equalizer not always suppo

2019-06-24 08:15发布

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

我不知道是否有一个解决方案,如果没有我能正好赶上这些例外并禁用均衡器,但我需要知道什么是究竟造成这一点,所以我可以告诉我的用户不折腾他们。

谢谢你的帮助

Answer 1:

我有同样的问题,它是由当我完成它没有要求我释放的均衡器()引起的。 显然,本机库将不允许新的AudioEffect的实例,如果有太多已经存在。



文章来源: Equalizer not always supported, even when api >= 9?