Я делаю живые обои для 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);
}
Вот странная часть: когда я просматриваю список живых обоев, я нажимаю на него, чтобы просмотреть предварительный просмотр, и он работает нормально.Не устанавливая его в качестве активных обоев, я нажимаю кнопку «Назад», а затем снова выбираю его, и он вылетает.Я могу повторить этот процесс, и он только падает через раз и работает в другое время.Если я выберу его в качестве активных обоев, он каждый раз будет зависать.