我正在使用佳能SDK 2.1,我正试图用C#代码在相机上拍照。 我开始了一个会话(EdsOpenSession),这一行代码的一切正常:
EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_TakePicture, 0);
相机拍照并将其存储在存储卡上。
问题在于:如果出现AF错误(例如镜头盖已打开),相机会“忙”并且永远不会回来。
此外,如果我尝试使用EdsCloseSession或EdsTerminateSDK函数关闭EDSDK,它们会阻止。唯一能让它重新启动的是重启应用程序和相机。 我正在使用EOS 100D。
如何忽略这些AF错误并尝试拍摄另一张照片?
答案 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是开源的。他们设法使自动对焦工作,但我还没有找到他们究竟做了什么。也许你可以找到它。如果你这样做,请分享解决方案。