EDSDK 相机似乎 "Locked" 消息 "Recording... Remaining Images"

EDSDK Camera seems "Locked" with Message "Recording... Remaining Images"

我正在使用 EDSDK 3.6.1 和 C# 远程控制 Canon EOS 1000D。

有时(成功)拍照并下载图像 (RAW+L) 后,相机似乎 "hang"。实时取景不再工作 and/or 相机似乎通过 EDSDK 没有响应。当我尝试关闭相机时,它的显示屏显示:

Recording...
Remaining images :2

这通常表示:相机正忙于向卡写入数据。 然而,在这些情况下,相机似乎无休止地写入数据。

我是否需要告诉相机我已完成下载图片或类似的东西?

不过,远程控制摄像头w/o卡的时候好像可以用。

更新 1:

刚遇到这个问题,相机里没有卡。

更新 2:

每次下载后都会调用EdsDownloadComplete命令。但是,我仍然随机得到这个错误:有时在第二个或第三个 photo/download 之后,有时更晚。很奇怪... :-(

EdsRelease returns 始终为 0,表示此 file/object.

上没有进一步的引用计数器

在进行 photo/starting 实时取景并取消所有剩余画面之前,是否有可能检查下载状态的方法?

此消息表示相机认为图像尚未保存。即拍摄的图像仍在缓冲区中。只有当您将 SaveTo 设置为 Host(也可能同时设置为 Both)时才会发生这种情况,因为这样图像就不会写入存储卡。

您必须在下载文件后调用 EdsDownloadComplete(使用来自 DownloadReady 对象事件的文件指针)。或者,如果您不想下载它,请调用 EdsDownloadCancel(再次使用文件指针)。

我猜测在下载图像时会同时发生一些事情,而这对 Canon SDK 来说从来都不是一件好事。我认为如果您锁定 DownloadReady 事件处理,它应该可以工作。

这个答案是 Johannes Bildstein 作为评论写的,对我来说很好用。