【问题标题】:Canon EDSDK Command TakePicture blocks everything after focus error佳能 EDSDK 命令 TakePicture 会在焦点错误后阻止所有内容
【发布时间】:2013-12-02 21:32:34
【问题描述】:

我使用的是佳能 SDK 2.1,我正在尝试使用 C# 代码在相机上拍照。 我开始了一个会话(EdsOpenSession),这行代码一切正常:

EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_TakePicture, 0);

相机拍摄一张照片并将其存储在存储卡中。

问题就在这里:如果出现 AF 错误(例如镜头盖打开),相机会“忙”并且永远不会回来。

另外,如果我尝试使用 EdsCloseSession 或 EdsTerminateSDK 功能关闭 EDSDK,它们会阻塞。重新启动它的唯一方法是重新启动应用程序和相机。 我正在使用 EOS 100D。

我该怎么做才能忽略这些 AF 错误并尝试拍摄另一张照片?

【问题讨论】:

    标签: c# sdk focus edsdk


    【解决方案1】:

    我也遇到了这个问题。

    我已经解决了这个问题,方法是按下半键对焦,然后按下全键拍照,如果成功的话。

    try
    {
        EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_PressShutterButton, 1); // Half
        EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_PressShutterButton, 3); // Completely
    }
    finally
    {
        EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_PressShutterButton, 0); // Off
    }
    

    【讨论】:

      【解决方案2】:

      佳能 EOS 1100D 也有同样的问题,但我发现 http://digicamcontrol.com 是开源的。他们设法使自动对焦工作,但我还没有找到他们到底做了什么。也许你能找到它。如果你这样做,请分享解决方案。

      【讨论】:

      • 我去看看。
      • DigiCamControl 也有同样的行为……在我最近几天测试过的其他一些开源工具中也有同样的行为。目前,我没有看到针对此问题启用自动对焦的任何解决方案。对我来说可以打开AF,我使用固定距离拍照。
      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 2023-04-10
      • 2023-01-04
      • 2021-09-19
      相关资源
      最近更新 更多