首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >佳能EDSDK:用LiveView拍照永远打破LV

佳能EDSDK:用LiveView拍照永远打破LV
EN

Stack Overflow用户
提问于 2017-02-22 09:59:23
回答 1查看 1.3K关注 0票数 2

我的应用程序使用C#和相当轻量级的EDSDKWraper控制相机(我对此做了一些修改)。我基本上可以控制一切,如LiveView,调焦(自动+手动),设置和读取各种属性和拍摄图片,可选择使用自动对焦手链/堆叠。

但是,有一个问题:当我启动LiveView,然后用标准方式拍照时

代码语言:javascript
复制
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_Completely_NonAF);
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_OFF);

它可以工作,我可以下载图片或取消下载使用Download + DownloadCompleteDownloadCancel函数。不幸的是,在此之后,不可能再获得LiveView映像,DownloadEvfImage将返回OBJECT_NOT_READY并将其永久返回。

唯一的出路是再次停止并启动LiveView,或者使用DoEvfAF命令启动LiveView自动聚焦。但我想避免这种情况。

这发生在佳能5D Mark和5DMarkIII上,同样的问题也发生在一个完全不同的C#框架上,我刚刚从网上下载了一个不同的例子。EOS实用程序似乎运行良好,因此似乎有一些方法。

"LiveView +拍照+ LiveView“在你的应用程序中工作吗,不管是C#还是C++?有什么我需要表演的把戏吗?

我已经花了很多时间来尝试搜索一个bug,比如没有发布数据,并且在网上搜索答案,但是到目前为止还没有找到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 18:24:14

终于找到了正在发生的事情!因此,为了让其他人知道,镜头在液晶显示器上拍摄后,相机正在显示照片(即普通评论)。在此显示期间,LiveView无法工作!EOS实用程序没有保存相机卡上的图像,所以没有什么可查看的,LV继续不间断地运行。

无论如何,解决方案/解决办法是摆脱液晶显示器上的评审图像。到目前为止,我已经找到了两种方法,可以再次让LV无缝地工作,而不需要关掉它和拍打镜子:

模拟快门按钮的半按。

也就是说,这个简单的代码将LV返回到正常工作模式:

代码语言:javascript
复制
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_Halfway_NonAF);
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_OFF);

播放kEdsPropID_Evf_OutputDevice标志

您可以将LV输出改为摄像机,而不是PC,关闭PC输出,然后再打开PC电源。镜子动不了。这意味着首先将kEdsPropID_Evf_OutputDevice设置为KEdsEvfOutputDevice_TFT,然后立即将其设置为agan,但这一次设置为KEdsEvfOutputDevice_PC (如果希望保持相机输出,则为KEdsEvfOutputDevice_TFT | KEdsEvfOutputDevice_PC )。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42388263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档