4

在 SDK 提供的示例 AudioFxDemo.java 中,我得到一个

java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4

尝试创建 android.media.audiofx.Visualizer 时

mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId());

(AudioFxDemo.java:173)。

据我所知,错误源于本机代码,(第 266 行 ff。)尝试创建 android.media.audiofx.Equalizer 时也会发生错误:

mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());

(AudioFxDemo.java:98)

我得到一个

java.lang.IllegalArgumentException: Effect type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b not supported.

我已经为我的项目声明了以下权限:

<uses-permission android:name="android.permission.RECORD_AUDIO"
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

任何想法这里可能出了什么问题?

这似乎是API级别的问题。我对 Gingerbread(API 级别 10)没有任何问题。我只在虚拟设备上测试过。

4

2 回答 2

4

这似乎是模拟器的问题。我已经在运行 Android 4.0.3 的实际设备上进行了测试,效果很好。

于 2012-01-27T17:11:31.540 回答
2

在某些安卓设备上似乎有问题。我在联想 a369i SDK 版本 17 上遇到了这个崩溃http://pastebin.com/7kqPbxkV 。现在我发现只有检查设备是否支持均衡器效果:

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;
     }
   }
}
于 2014-12-30T21:39:03.630 回答