我在音乐应用的均衡器中收到以下错误。
E/AudioEffect: set(): AudioFlinger could not create effect, status: -38
E/AudioEffects-JNI: AudioEffect initCheck failed -3
E/AudioEffect-JAVA: Error code -3 when initializing AudioEffect.
W/System.err: java.lang.RuntimeException: Cannot initialize effect engine for type: 47382d60-ddd8-11db-bf3a-0002a5d5c51b Error: -3
W/System.err: at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:411)
W/System.err: at android.media.audiofx.PresetReverb.<init>(PresetReverb.java:128)
W/System.err: at com.ushareit.listenit.equalizer.EqualizerHelper.initEqualizer(EqualizerHelper.java:67)
W/System.err: at com.ushareit.listenit.core.CrossfadePlayer.<init>(CrossfadePlayer.java:43)
W/System.err: at com.ushareit.listenit.core.PlayerProxy.<init>(PlayerProxy.java:52)
W/System.err: at com.ushareit.listenit.service.PlayService.onCreate(PlayService.java:96)
W/System.err: at android.app.ActivityThread.handleCreateService(ActivityThread.java:3162)
W/System.err: at android.app.ActivityThread.-wrap5(ActivityThread.java)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:154)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6077)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
它发生在:
mReverb = new PresetReverb(0, audioSessionId);
我确定audioSessionId
不是0,所以我不需要添加以下权限:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
以下是我所知道的:
1. what 47382d60-ddd8-11db-bf3a-0002a5d5c51b
public static final UUID EFFECT_TYPE_PRESET_REVERB = UUID
.fromString("47382d60-ddd8-11db-bf3a-0002a5d5c51b");
2.此例外来自:
public AudioEffect(UUID type, UUID uuid, int priority, int audioSession)
throws IllegalArgumentException, UnsupportedOperationException,
RuntimeException {
...
// native initialization
int initResult = native_setup(new WeakReference<AudioEffect>(this),
type.toString(), uuid.toString(), priority, audioSession, id,
desc);
if (initResult != SUCCESS && initResult != ALREADY_EXISTS) {
Log.e(TAG, "Error code " + initResult
+ " when initializing AudioEffect.");
switch (initResult) {
...
default:
throw (new RuntimeException(
"Cannot initialize effect engine for type: " + type
+ " Error: " + initResult));
}
}
3.此例外仅发生在Android 7.0中的Nexus 6P中。
它导致我的均衡器无法启用,那么如何解决这个问题?