Canon EDSDK命令TakePicture会在焦点错误后阻止所有内容



我使用的是Canon SDK 2.1,我正试图用C#代码在相机前拍照。我开始了一个会话(EdsOpenSession),使用这行代码一切都很好:

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

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

问题就在这里:如果出现AF错误(例如,镜头盖打开),相机就会"忙碌",再也回不来了。

此外,如果我试图用函数EdsCloseSession或EdsTerminateSDK关闭EDSDK,它们会阻止。唯一能让它重新启动的就是重新启动应用程序和相机。我使用的是EOS100D。

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

我刚刚也遇到了这个问题。

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

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
}

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

相关内容

最新更新