Android Visualizer (Audio Effects) runtime exception on Ice Cream Sandwich

自古美人都是妖i 提交于 2019-12-23 13:06:33

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!