我正在为Android 2.3.3制作动态壁纸,并使用了Visualizer类。我已经有一个可用的Visualizer程序的独立版本,但当我把代码放入动态壁纸服务时,问题就出现了。下面的代码是错误存在的地方:
// 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);
}
这里有个奇怪的问题,当我浏览动态壁纸列表并点击查看预览时,一切正常。但如果不将其设置为活动壁纸,我点击返回按钮然后再次选择它,便会崩溃。我可以重复此过程,但只有每两次才会崩溃,另外的时间则正常工作。如果我选择将其设置为活动壁纸,那么每次都会崩溃。