佳能EDSDK命令TakePicture在聚焦错误后阻止所有内容

时间:2013-12-02 21:32:34

标签: c# sdk focus edsdk

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

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

相机拍照并将其存储在存储卡上。

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

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

如何忽略这些AF错误并尝试拍摄另一张照片?

2 个答案:

答案 0 :(得分:2)

我也遇到过这个问题。

我已经解决了这个问题,发送半按按钮进行对焦,然后按下完整按钮拍摄照片,如果成功的话。

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
}

答案 1 :(得分:0)

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