Класс Android Visualizer выбрасывает исключение времени выполнения
Я использую класс визуализатора AndroidFX в моем демо-приложении для чтения FFT, но когда я пытаюсь создать объект этого класса, его исключение во время выполнения (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1
). Player class - это мой пользовательский класс для управления воспроизведением и использования того же класса плеера, который я реализовал класс эквалайзера, и он работает нормально. Нужно ли добавлять какие-либо разрешения в файл манифеста?
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());
}
2 ответов
Это было из-за моей глупой ошибки, что функция требует <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
разрешения. спасибо
Я знаю, что это очень поздний ответ, но я тоже боролся с этой проблемой и хочу поделиться своим опытом.
во-первых, как уже упоминалось выше, разрешения
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
и, если используется источник звука 0 (Visualizer(0); //system mix
),
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
есть. После добавления разрешений в мое приложение и повторной установки (нового скомпилированного) приложения мое приложение все равно разбилось. Я узнал, что устройство должно быть перезапущено, чтобы использовать визуализатор без каких-либо исключение (по какой-либо причине). Поэтому, если вы разрабатываете приложение и получаете это исключение, перезапуск может потребоваться после добавления разрешений в приложение .