/ / Android Visualizer Klasse werfen Laufzeit Ausnahme - Android, Audio, Visualisierung

Android Visualizer-Klasse werfen Laufzeitausnahme - Android, Audio, Visualisierung

Ich benutze die AndroidFX Visualizer-Klasse in meiner Demo-App, um FFT zu lesen, aber wenn ich versuche, ein Objekt dieser Klasse zu erstellen, wird die Runtime-Ausnahme ausgelöst (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1). Die Player-Klasse ist meine benutzerdefinierte Klasse für die Wiedergabesteuerung und die Verwendung derselben Player-Klasse. Ich habe Equalizer-Klasse implementiert und das funktioniert einwandfrei. Muss ich irgendwelche Berechtigungen in der Manifest-Datei hinzufügen?

Player mediaPlayer = Player.GetInstance();
mediaPlayer.LoadFile("song.mp3");
mediaPlayer.Play();
try{
visual = new Visualizer(mediaPlayer.GetAudioSessionID()); // this line causing Exception
visual.setEnabled(true);
visual.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
}
catch(Exception ex)
{
Log.e("Visual Ex", ex.getMessage());
}

Antworten:

27 für die Antwort № 1

Das lag an meinem törichten Fehler, den diese Funktion erfordert <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> Genehmigung. Vielen Dank


4 für die Antwort № 2

Ich weiß, dass dies eine sehr späte Antwort ist, aber ich habe auch mit diesem Problem gekämpft und möchte meine Erfahrungen teilen.

Erstens, wie oben erwähnt, die Berechtigungen

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

und wenn die Audioquelle 0 verwendet wird (Visualizer(0); //system mix),

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

wird gebraucht. Nachdem ich die Berechtigungen zu meiner App hinzugefügt und die (neu kompilierte) App erneut installiert habe, stürzte meine App immer noch ab. Ich habe herausgefunden, dass das Gerät neu gestartet werden muss, um den Visualizer ohne Ausnahme (aus welchen Gründen auch immer) zu verwenden. Wenn Sie also eine App entwickeln und diese Ausnahme erhalten, Nach dem Hinzufügen der Berechtigungen zur App könnte ein Neustart erforderlich sein .