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

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

7
задан Foggzie 14 February 2012 в 17:19
поделиться