[英]Canon EDSDK Command TakePicture blocks everything after focus error
我正在使用佳能SDK 2.1,并且试图从C#代码在相机上拍照。 我开始了一个会话(EdsOpenSession),此行代码一切正常:
EDSDK.EdsSendCommand(cameraDev, EDSDK.CameraCommand_TakePicture, 0);
相机拍摄照片并将其存储在存储卡中。
问题出在这里:如果出现自动对焦错误(例如,镜头盖已打开),则相机将变得“忙碌”,并且永不退缩。
另外,如果我尝试使用功能EdsCloseSession或EdsTerminateSDK关闭EDSDK,它们也会阻塞。 重新启动它的唯一一件事就是重新启动应用程序和相机。 我正在使用EOS 100D。
我该怎么做才能忽略这些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是开源的。 他们设法使自动对焦起作用,但是我还没有发现他们到底做了什么。 也许你可以找到它。 如果您愿意,请与我分享解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.