Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using audioSessionId value to instantiate AudioFx class?

Tags:

android

audio

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?

like image 390
Jona Avatar asked Jun 25 '12 16:06

Jona


1 Answers

You should look at: this

Apparently it is an unsolved issue came up in ICS, and probably wasn't solved either in JB.

like image 153
RE6 Avatar answered Oct 11 '22 05:10

RE6