2012-05-10 13 views
12

prima di abilitare le funzionalità di equalizzazione, controllo per il livello di API per assicurarsi che sia uguale o superiore a 9. Dalle relazioni che sto ricevendo dai miei utenti, sembra che alcune eccezioni sono gettati in ogni caso:L'equalizzatore non è sempre supportato, anche quando api> = 9?

il codice eq = new Equalizer(0, mp.getAudioSessionId()) può sollevare:

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) 

e il codice eq.getBandLevelRange() può sollevare:

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) 

non so se c'è una soluzione, e se non ho co Mi basta prendere queste eccezioni e disabilitare l'equalizzatore, ma ho bisogno di sapere che cosa sta causando esattamente questo, quindi posso informare i miei utenti senza frustrarli.

Grazie per qualsiasi aiuto

+0

errore uguale su livello API 25, hai trovato qualche soluzione? – AkhilGite

risposta

6

Ho avuto questo stesso problema, ed è stato causato da non chiamare Release() sul mio equalizzatore quando ero finito con esso. Apparentemente, le librerie native non permetteranno l'istanziazione di un nuovo AudioEffect se ce ne sono già troppe.

+0

Ho aggiunto la versione nella stessa classe in cui sto inizializzando il mio equalizzatore e la mia app funziona perfettamente su tutti i dispositivi ad eccezione del livello API 25. Arresto anomalo con eccezione java.lang.UnsupportedOperationException: AudioEffect: operazione parametro non valida Così ho chiesto sotto il link http://stackoverflow.com/questions/40967977/java-lang-unsupportedoperationexception-audioeffect-invalid-parameter-operatio/40968149?noredirect=1#comment69152090_40968149 – AkhilGite

Problemi correlati