我的应用程序使用 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 似乎工作正常,所以似乎有某种方法。
“LiveView + 拍照 + LiveView 再次”甚至可以在您的应用程序中使用,无论是 C# 还是 C++?我需要执行一些技巧吗?
我已经花了很多时间试图找出一个错误,比如没有发布数据,并在网上搜索答案,但到目前为止还没有运气。