我正在打開一個應用程序,它打開閃光燈以預覽圖像數據並在完成時關閉閃光燈。鎖定屏幕並返回時,相機不工作
public void openFlash() {
try {
flash =false;
previewing=false;
finger_placed=false;
Log.d("", "openFlash");
if(camera==null){
camera = application.getCamera();
preview = Dashboard.preview;
previewHolder = Dashboard.previewHolder;
}
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.setPreviewDisplay(previewHolder);
camera.setPreviewCallback(previewCallback);
camera.startPreview();
} catch (Throwable t) {
Log.e("PreviewDemo-surfaceCallback", "Exception in setPreviewDisplay()", t);
}
}
public void stopPreview() {
try{
Log.d("", "stopPreview");
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
previewing=false;
}catch (Exception e) {
e.printStackTrace();
}
}
每件事情都很好,直到我鎖定screen.WHen我解鎖屏幕和使用應用程序。 openFlash不起作用。並給出錯誤如下
06-20 12:13:25.725: E/AndroidRuntime(29033): FATAL EXCEPTION: main
06-20 12:13:25.725: E/AndroidRuntime(29033): java.lang.RuntimeException: Method called after release()
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.hardware.Camera.setHasPreviewCallback(Native Method)
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.hardware.Camera.access$600(Camera.java:133)
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:805)
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.os.Looper.loop(Looper.java:137)
06-20 12:13:25.725: E/AndroidRuntime(29033): at android.app.ActivityThread.main(ActivityThread.java:4898)
06-20 12:13:25.725: E/AndroidRuntime(29033): at java.lang.reflect.Method.invokeNative(Native Method)
06-20 12:13:25.725: E/AndroidRuntime(29033): at java.lang.reflect.Method.invoke(Method.java:511)
06-20 12:13:25.725: E/AndroidRuntime(29033): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
06-20 12:13:25.725: E/AndroidRuntime(29033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
06-20 12:13:25.725: E/AndroidRuntime(29033): at dalvik.system.NativeStart.main(Native Method)
有沒有人遇到過這種情況。任何幫助將不勝感激。
喚醒鎖定不會修復任何事情,只要用戶導航離開然後回到應用程序,它就會再次崩潰。 – npace