/ / Wyjątek rzucania klasy wykonawczej klasy Android Visualizer - Android, audio, wizualizacja

Wyjątek rzucania klasy wykonawczej klasy Android Visualizer - Android, audio, wizualizacja

Używam klasy AndroidFX Visualizer w mojej aplikacji demonstracyjnej do odczytu FFT, ale gdy próbuję utworzyć obiekt tej klasy, jego wyjątek Runtime throw (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1). Klasa odtwarzacza to moja klasa niestandardowa do sterowania odtwarzaniem i używanie tej samej klasy odtwarzacza Zaimplementowałem klasę equalizera i to działa dobrze. Czy muszę dodawać jakieś uprawnienia w pliku manifestu?

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());
}

Odpowiedzi:

27 dla odpowiedzi nr 1

Było to spowodowane moim głupim błędem, którego ta funkcja wymaga <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> pozwolenie. dzięki


4 dla odpowiedzi nr 2

Wiem, że to bardzo późna odpowiedź, ale ja też zmagałem się z tym problemem i chcę podzielić się moimi doświadczeniami.

Po pierwsze, jak wspomniano powyżej, uprawnienia

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

i, jeśli używane jest źródło audio 0 (Visualizer(0); //system mix),

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

są potrzebne. Po ponownym dodaniu uprawnień do mojej aplikacji i ponownym zainstalowaniu aplikacji (nowej) moja aplikacja wciąż się zawieszała. Dowiedziałem się, że urządzenie musi zostać zrestartowane, aby użyć Visualizera bez żadnego wyjątku (z jakiegokolwiek powodu). Jeśli więc stworzysz aplikację i uzyskasz ten wyjątek, ponowne uruchomienie może być wymagane po dodaniu uprawnień do aplikacji .