Intereting Posts
Обслуживание локального веб-сайта через Bluetooth на мобильный телефон без использования Интернета Android ==> Анализ памяти ==> Анализатор памяти Eclipse? Оценочные маяки – разница между слушателями мониторинга и ранжирования Просмотр содержимого файла базы данных в Android Studio Поддержка отслеживания экрана – Firebase 9.8 Android Gradle build: переименование apk SSL-сеанс не используется повторно в Android WebView BitmapFactory.Options.inBitmap вызывает разрывы при частом переключении растрового изображения ImageView Android – существует ли база данных SQLite? Скрыть TabLayout на прокрутке содержимого вместо ToolBar Добавление версии сервисов Google Play в манифест вашего приложения? Как сбросить все сохраненные хранилища данных с использованием общих настроек Как создать ListView с заголовками над некоторыми разделами? Java.lang.ClassNotFoundException в dalvik.system.BaseDexClassLoader.findClass Черный экран в Genymotion

Android.media.audiofx.Visualizer бросает исключение каждый раз

Я делаю Live Wallpaper для Android 2.3.3, и он использовал класс Visualizer. У меня уже есть рабочая версия моей программы Visualizer, работающей как самостоятельная, но когда я помещаю код в службу Live Wallpaper, моя проблема начинается. Следующий код содержит ошибку:

// Called in my Engine extension's constructor public void setupVisualizer() { mBytes = null; mVisualizer = new Visualizer(0); // EDIT mVisualizer.setEnabled(false); // This fixes the issue // END EDIT mVisualizer.setCaptureSize( Visualizer.getCaptureSizeRange()[1]); // IllegalStateException Thrown mVisualizer.setDataCaptureListener() { public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { updateVisualizer(bytes); } public void onFftDataCapture(Visualizer visualizer, bytes[] bytes, int samplingRate) {} }, Visualizer.getMaxCaptureRate() / 2, true, false); mVisualizer.setEnabled(true); } 

Вот странная часть, когда я просматриваю список живых обоев, я коснусь его, чтобы просмотреть предварительный просмотр, и он отлично работает. Не устанавливая его в качестве активных обоев, я нажимаю кнопку «Назад», а затем снова выбираю его, и он падает. Я могу повторить этот процесс, и он только падает каждый раз и работает в другие времена. Если я решит установить его как активные обои, он будет сбрасываться каждый раз.

Solutions Collecting From Web of "Android.media.audiofx.Visualizer бросает исключение каждый раз"

Глядя на источник , похоже, что IllegalStateException выбрасывается, если состояние не STATE_INITIALIZED .

Поскольку конструктор устанавливает состояние в STATE_ENABLED или STATE_INITIALIZED , это означает, что состояние, когда вы получаете исключение, STATE_ENABLED (единственный вариант).

В документации setCaptureSize() они упоминают, что вы не должны вызывать этот метод, пока состояние STATE_ENABLED , поэтому я думаю, что вам нужно вызвать setEnabled(false) в объекте Visualizer перед вызовом setCaptureSize()