Using audioSessionId value to instantiate AudioFx class?
android, audio
Solution
You should look at: this
Apparently it is an unsolved issue came up in ICS, and probably wasn't solved either in JB.
Problem
I have read the Android APIs and tried searching over the internet about declaring a custom `audioSessionId` and then using that `audioSessionId` to initialize an AudioFx class and assign my MediaPlayer or AudioTrack the hardcoded `audioSessionId`. This method would allow me to create an AudioFx first and later attach a new MediaPlayer or AudioTrack to this `audioSessionId`. I'm currently able to use this method on Android 2.3.6 but on Android 4.x I'm running into issues with errors that initialization fails or on other ICS/JellyBean devices this error is silent but calling a function leads to exceptions. Samsung Galaxy S II [Android 4.0.3]: [Issue no longer happens with 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 it seems silently after the constructor. Then calling on getProperties() it crashes. ``` 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] Using audioSessionId=0 everything works fine but using any other number the device will report the following silent error every time I try to change the preset, band level, bass boost to ON or Virtualizer to ON. The effect ID reported is different depending on the FX I'm trying to modify. ``` W/AudioPolicyManagerBase(165): unregisterEffect() unknown effect ID 1381 ``` Update 08/11/12: I'm able to use `audioSessionId` as 0. I know it's deprecated but it works using the permission. `<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />` Should I be using the AudioFx with the audio session id 0?