引起:java.lang.RuntimeException:无法为类型初始化效果引擎:0bed4300-ddd6-11db-8f34-0002a5d5c51b错误:-3

时间:2018-02-06 18:20:39

标签: android android-music-player equalizer

我在Android版本7.1.1中测试均衡器,但它显示了运行时异常,但它完全适用于7.0以下版本。

当我尝试初始化均衡器时:

private static UUID EQUALIZER_UUID;
mp = MediaPlayer.create(this, R.raw.a);
mp.start();
if(hasEqualizer()) {
   equalizer = new Equalizer(0, mp.getAudioSessionId());
   equalizer = equalizerUtil.getEqualizer(mp);
   Log.d("No. of Presets",String.valueOf(equalizer.getNumberOfPresets()));
}

public static boolean hasEqualizer() {
    for (AudioEffect.Descriptor effect : AudioEffect.queryEffects()) {
        if (EQUALIZER_UUID.equals(effect.type)) {
            return true;
        }
    }
    return false;
}

显示错误:

java.lang.RuntimeException: Cannot initialize effect engine for type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b Error: -3
          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2678)
          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2743)
          at android.app.ActivityThread.-wrap12(ActivityThread.java)
          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1490)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:154)
          at android.app.ActivityThread.main(ActivityThread.java:6165)
          at java.lang.reflect.Method.invoke(Native Method)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Caused by: java.lang.RuntimeException: Cannot initialize effect engine for type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b Error: -3

我曾尝试过各种解决方案 -     FileReader,但没有任何作用

有人可以有任何想法吗?

1 个答案:

答案 0 :(得分:0)

如果会话ID尚未可用,则看起来可能是getAudioSessionId()的问题。请参阅以下链接中的此响应:

  

这意味着它尚未设定。您可以使用   player.setAudioDebugListener侦听正在设置的ID(ID   将通过onAudioSessionId传递。)

https://github.com/google/ExoPlayer/issues/2357