1
我正在運行一個應用程序,它使用surfaceView來顯示Camera對象輸出,並且我需要在拍照時設置自動閃光。我認爲這可能是一件簡單的事情,但我錯了! 這是我的代碼:無法在Android Camera對象上設置自動閃光
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Camera.Parameters params = mCamera.getParameters();
Camera.Size result = getBestPreviewSize(params, width, height);
params.setPreviewSize(result.width, result.height);
params.setPictureFormat(ImageFormat.JPEG);
params.setJpegQuality(100);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
params.setPictureSize(dpWidth, dpWidth);
params.setRotation(90);
mCamera.setParameters(params);
mCamera.startPreview();
}
和清單具有正確的權限。當我啓動我的代碼時,這是錯誤:
06-17 13:54:48.260: E/AndroidRuntime(19901): FATAL EXCEPTION: main
06-17 13:54:48.260: E/AndroidRuntime(19901): Process: it.giozh.app, PID: 19901
06-17 13:54:48.260: E/AndroidRuntime(19901): java.lang.RuntimeException: setParameters failed
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.hardware.Camera.native_setParameters(Native Method)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.hardware.Camera.setParameters(Camera.java:1651)
06-17 13:54:48.260: E/AndroidRuntime(19901): at it.ictinnova.hipstamemostylist.ScattaFoto.surfaceChanged(TakePic.java:144)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.SurfaceView.updateWindow(SurfaceView.java:583)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.SurfaceView.access$000(SurfaceView.java:86)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1867)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.Choreographer.doFrame(Choreographer.java:544)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.os.Handler.handleCallback(Handler.java:733)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.os.Handler.dispatchMessage(Handler.java:95)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.os.Looper.loop(Looper.java:136)
06-17 13:54:48.260: E/AndroidRuntime(19901): at android.app.ActivityThread.main(ActivityThread.java:5001)
06-17 13:54:48.260: E/AndroidRuntime(19901): at java.lang.reflect.Method.invokeNative(Native Method)
06-17 13:54:48.260: E/AndroidRuntime(19901): at java.lang.reflect.Method.invoke(Method.java:515)
06-17 13:54:48.260: E/AndroidRuntime(19901): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-17 13:54:48.260: E/AndroidRuntime(19901): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-17 13:54:48.260: E/AndroidRuntime(19901): at dalvik.system.NativeStart.main(Native Method)
出現了什麼問題?
我不需要捕捉異常,因爲我的應用程序應該只在特定設備上運行(在我的情況下是nexus 7),所以我正在搜索一種僅用於自動閃光的方法! 編輯。在我的情況下,導致崩潰的唯一參數是FALSH_MODE_AUTO。如果我評論該行,永久工程 – giozh
亞仍然但事情我發現它的作品設置參數適用於某些設備不是全部。嘗試設置params逐個 – Sush
@giozh Nexus 7甚至沒有相機閃光燈,如果我還記得嗎? – Boni2k