Ho letto le API di Android e ho provato a cercare su Internet la dichiarazione di una audioSessionId
personalizzata e quindi di utilizzare tale audioSessionId
per inizializzare una classe AudioFx e assegnare a MediaPlayer o AudioTrack il codice audioSessionId
.Utilizzare il valore audioSessionId per istanziare la classe AudioFx?
Questo metodo mi consentirà di creare un AudioFx prima e successivamente di aggiungere un nuovo MediaPlayer o AudioTrack a questo audioSessionId
.
Attualmente sono in grado di utilizzare questo metodo su Android 2.3.6 ma su Android 4.x Sto riscontrando problemi con errori che l'inizializzazione non riesce o su altri dispositivi ICS/JellyBean questo errore è silenzioso ma chiama una funzione porta ad eccezioni.
Samsung Galaxy S II [Android 4.0.3]:[problema non accade con Android 4.0.4]
E/AudioEffect(13250): set(): AudioFlinger could not create effect, status: -38
E/AudioEffects-JNI(13250): AudioEffect initCheck failed -5
E/AudioEffect-JAVA(13250): Error code -5 when initializing AudioEffect.
W/WrapEqualizer(13250): createEqualizer() -> Effect library not loaded
Motorola Xoom [Android 4.1.2]
Fails sembra silenziosamente dopo il costruttore. Quindi chiamare getProperties() si blocca.
java.lang.RuntimeException: AudioEffect: set/get parameter error
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1247)
at android.media.audiofx.Equalizer.getProperties(Equalizer.java:532)
Nexus 4 [Android 4.2.1]
Utilizzando audioSessionId = 0 tutto funziona bene, ma utilizzando un qualsiasi altro numero il dispositivo segnalerà il seguente errore in silenzio ogni volta che provo a cambiare il preset, livello della banda , bass boost su ON o Virtualizer su ON. L'ID dell'effetto riportato è diverso a seconda dell'effetto che sto cercando di modificare.
W/AudioPolicyManagerBase(165): unregisterEffect() unknown effect ID 1381
Aggiornamento 08/11/12:
sono in grado di utilizzare audioSessionId
come 0. Lo so che è deprecato ma funziona con il permesso. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Dovrei utilizzare AudioFx con l'ID di sessione audio 0?
Se non avete votato almeno avete il tempo di commentare perché avete votato! – Jona
Qualcuno è andato in giro a svaligiare ogni domanda di premi e le sue risposte ... Spero davvero che vengano bannati. – Eric
Ciao Jona, hai qualche soluzione a riguardo. Voglio anche implementare l'effetto audio nell'app ma ho ricevuto l'errore come sopra. –