1

在 EDSDK 中,如果在应用程序重新启动并重新连接到设备时图像传输过程中发生错误(即连接丢失、应用程序错误......),则无法拍摄新照片,因为 EdsSendCommand(hdev,kEdsCameraCommand_TakePicture,0) 总是返回 EDS_ERR_DEVICE_BUSY .

这是因为即使我关闭相机,以前的图像数据也在相机内存中。唯一的解决办法就是把电池关掉!!!有没有人有更好的解决方案(软件)发送一种RESET并释放内存中等待传输的所有图像数据,让相机恢复正常工作状态。

我在以下模式下运行 SDK 我首先将属性设置为 EdsdkWrapper.PropID_SaveTo : EdsdkWrapper.EdsSaveTo.Host

EdsSendCommand EdsdkWrapper.CameraCommand_TakePicture

问题:如何在突然终止后重置相机,以便它可以忘记所有半完成的传输?请注意,突然终止后我没有 IntPtr 参考。(即我不能调用 EdsdkWrapper.EdsDownloadComplete(imageReference))

4

1 回答 1

1

这可能是因为您的程序在 EdsTerminate() 函数执行之前退出。您应该确保在程序终止之前执行此函数。或者更粗略的解决方案是让另一个程序只有 EdsTerminate 函数。如果发生突然终止,您可以在再次运行应用程序之前运行该程序。

于 2013-01-30T04:23:01.420 回答