我们使用 cwac-camera 在我们的应用程序中获取这样的堆栈跟踪:
java.lang.IllegalStateException: Preview mode must have started before you can take a picture
at com.commonsware.cwac.camera.CameraView.takePicture(CameraView.java:329)
at com.commonsware.cwac.camera.CameraView.takePicture(CameraView.java:277)
at com.github.randoapp.camera.RandoCameraHost.onAutoFocus(RandoCameraHost.java:119)
at com.commonsware.cwac.camera.CameraView.onAutoFocus(CameraView.java:411)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:824)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
我们认为,这种情况可能是由于用户过早按下拍照键而发生的。解决方案是在预览初始化时禁用按钮,并仅在预览完成时启用。问题是:使用什么事件来启用按钮?是否有事件或回调说预览最终初始化?
我们认为发生这种情况是因为用户过早按下拍照键
这是一种明显的可能性。
使用什么事件来启用按钮?是否有事件或回调说预览最终初始化?
autoFocusAvailable()
在你的CameraHost
是目前最好的选择。这是在预览开始之前调用的inPreview
被设定为true
.
我已提交an issue https://github.com/commonsguy/cwac-camera/issues/179做得比这更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)