问题
In the sample AudioFxDemo.java, provided with the SDK, I get a
java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4
when trying to create the android.media.audiofx.Visualizer
mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId());
(AudioFxDemo.java:173).
As far as I can see, the error originates in the native code, (lines 266 ff.) An error also happens when trying to create the android.media.audiofx.Equalizer:
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
(AudioFxDemo.java:98)
I get a
java.lang.IllegalArgumentException: Effect type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b not supported.
I have declared the following permissions for my project:
<uses-permission android:name="android.permission.RECORD_AUDIO"
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Any ideas what might be going wrong here?
It seems to be a problem with the API level. I have no problems on Gingerbread (API Level 10). I have only tested on virtual devices.
回答1:
This seems to be an issue with the Emulator. I have tested on an actual device running Android 4.0.3 and it worked just fine.
回答2:
it seems issue on some android devices. I got this crash http://pastebin.com/7kqPbxkV on Lenovo a369i SDK version 17. For now only thing i`ve found is to check if equalizer effect is supported on device:
boolean supports_equalizer=false;
AudioEffect.Descriptor [] effects = Equalizer.queryEffects();
for (AudioEffect.Descriptor lDescriptor:effects){
if (Build.VERSION.SDK_INT>=18) { //Equalizer present only starting with API 18. Cam try to hardcode its UUID
if (AudioEffect.EFFECT_TYPE_EQUALIZER.equals(lDescriptor.uuid)){
supports_equalizer=true;
}
}
}
来源:https://stackoverflow.com/questions/8341247/android-visualizer-audio-effects-runtime-exception-on-ice-cream-sandwich