質問

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.

役に立ちましたか?

解決

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.

他のヒント

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;
     }
   }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top