Estoy haciendo un Live Wallpaper para Android 2.3.3 y usaba la clase Visualizer. Ya tengo una versión funcional de mi programa Visualizer funcionando como independiente, pero cuando coloco el código en un servicio de Live Wallpaper, mi problema comienza. El siguiente código es donde existe el error:android.media.audiofx.Visualizer throwing exception every other time
// 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);
}
Aquí está la parte extraña, cuando estoy mirando a través de la lista de pantalla en vivo, te toque en él para ver la vista previa y funciona bien. Sin configurarlo como fondo de pantalla activo, presiono el botón Atrás y luego lo selecciono nuevamente y se cuelga. Puedo repetir este proceso y solo se bloquea cada dos por tres y funciona el resto del tiempo. Si elijo establecerlo como fondo de pantalla activo, se bloquea cada vez.
Eso funcionó! Muchas gracias. Dice que no puedo otorgar la recompensa por otras 6 horas, pero lo haré una vez que pueda. – Foggzie
Me alegra oírlo. Nunca antes había trabajado con Visualizer, y espero que mi método para encontrar el problema te sirva en otros momentos de necesidad. – MByD
¡Esto me ayudó a corregir un error similar que estaba teniendo con la orientación de la pantalla! Buen trabajo gracias. – kabuto178