【发布时间】:2017-02-25 02:24:14
【问题描述】:
我的应用程序使用 C# 和相当轻量级的 EDSDKWraper(我已经修改了一点)来控制相机。我基本上已经可以控制一切,例如 LiveView、对焦(自动 + 手动)、设置和读取各种属性和拍摄图片,可选择使用自动对焦包围/堆叠。
但是,有一个问题:当我启动 LiveView 然后使用标准方式拍照时
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_Completely_NonAF);
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_OFF);
它有效,我可以使用Download + DownloadComplete 或DownloadCancel 函数下载图片或取消下载。不幸的是,此后无法再获取 LiveView 图像,DownloadEvfImage 返回 OBJECT_NOT_READY 并使其永远返回。
唯一的出路是停止并再次启动 LiveView 或使用 DoEvfAF 命令启动 LiveView 自动对焦。但我想避免这种情况。
这发生在佳能 5D Mark IV 和 5D Mark III 上,同样的问题也发生在完全不同的 C# 框架上,我刚刚从网上下载了一个不同的示例。 EOS Utility 似乎工作正常,所以似乎有某种方法。
无论是 C# 还是 C++,“LiveView + 拍照 + LiveView 再次”能否在您的应用中工作?我需要执行一些技巧吗?
我已经花了很多时间试图找出错误,例如未发布的数据,并在网络上搜索答案,但到目前为止没有运气。
【问题讨论】: