Android Visualizer (Audio Effects) Laufzeitausnahme auf Eiscremesandwich
-
26-10-2019 - |
Frage
In der Stichprobe audiofxdemo.java, mit dem SDK versehen, bekomme ich eine
java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4
Beim Versuch, die Android.media.audiofx.visualizer zu erstellen
mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId());
(Audiofxdemo.java:173).
Soweit ich sehen kann, stammt der Fehler in der nativen Code, (Zeilen 266 ff.) Ein Fehler tritt ebenfalls auf, wenn versucht wird, die Android.media.audiofx.equalizer zu erstellen:
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
(Audiofxdemo.java:98)
Ich bekomme ein
java.lang.IllegalArgumentException: Effect type: 0bed4300-ddd6-11db-8f34-0002a5d5c51b not supported.
Ich habe die folgenden Berechtigungen für mein Projekt deklariert:
<uses-permission android:name="android.permission.RECORD_AUDIO"
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Irgendwelche Ideen, was könnte hier schief gehen?
Es scheint ein Problem mit der API -Ebene zu sein. Ich habe keine Probleme auf Lebkuchen (API -Stufe 10). Ich habe nur auf virtuellen Geräten getestet.
Lösung
Dies scheint ein Problem mit dem Emulator zu sein. Ich habe auf einem tatsächlichen Gerät getestet, das Android 4.0.3 ausführt, und es hat gut funktioniert.
Andere Tipps
Es scheint ein Problem auf einigen Android -Geräten zu sein. Ich habe diesen Absturz bekommen http://pastebin.com/7kqpbxkv Auf Lenovo A369I SDK Version 17. Für den Moment habe ich nur festgestellt, ob der Equalizer -Effekt auf dem Gerät unterstützt wird:
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;
}
}
}