Эквалайзер не всегда поддерживается, даже если 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)

Я не знаю, есть ли решение, и если нет, я мог бы просто перехватить эти исключения и отключить эквалайзер, но мне нужно знать, что именно это и является причиной, поэтому я могу информировать своих пользователей, не расстраивая их.

спасибо за помощь

12
задан elgui 10 May 2012 в 14:27
поделиться