【问题标题】:Preview mode must have started before you can take a picture必须先启动预览模式,然后才能拍照
【发布时间】:2014-06-27 16:31:27
【问题描述】:

我们正在使用 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)

我们认为这可能是因为用户过早按下拍照键。解决方案是在预览初始化时禁用按钮,仅在完成后启用。问题是:使用什么事件来启用按钮?预览最终初始化是否有事件或回调说?

【问题讨论】:

    标签: android android-camera commonsware-cwac


    【解决方案1】:

    我们认为这可能是因为用户过早按下拍照键

    这是一种明显的可能性。

    使用什么事件来启用按钮?预览最终初始化是否有事件或回调说?

    autoFocusAvailable() 在您的CameraHost 中是目前最好的选择。这是在预览开始之前调用的,inPreview 设置为 true

    我已提交an issue 以做得比这更好。

    【讨论】:

    • 是 autoFocusUnavailable() 也应该用于这个 porposes 吗?因为并非所有设备都支持自动对焦。
    • @xp-vit:该方法将始终在当前实现中被调用。这仅意味着可以进行自动对焦。同样,根据我在回答中引用的问题,我计划为预览可用性添加更好的回调方法。 autoFocusAvailable() 是您目前最好的解决方案。
    • 我有同样的问题,但无论我等多久,我都会收到错误消息。有什么我可以调用来重置预览的吗?
    • 哦...我只需要在视频录制停止时对片段调用restartPreview。
    • @MikeT:当你打电话给stopRecording()时,这已经为你完成了。
    【解决方案2】:

    每当在光线不足的情况下使用自动闪光灯拍照时,我们都会遇到此异常。

    我们通过删除CameraView (line 284) 中的inPreview 检查来“修复”它,但我不确定这是否会产生其他问题(我猜检查是有原因的),但我们没有从那以后就没有了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 2021-03-15
      • 2018-02-20
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 2012-06-03
      相关资源
      最近更新 更多