如何通过远程相机API在a7iii / a7riii / a9上获得对焦模式

时间:2019-04-12 07:39:14

标签: ios sony sony-camera-api

问题

Sony a7iii / a7riii和a9都存在通过远程相机API在自动对焦中拍摄的问题。显然,有一种解决方法(因为它似乎与PlayMemories应用程序兼容),我试图在自己制作的应用程序中重现该方法,但是它似乎并不完美,并且在反复拍摄时会引起问题喜欢游戏中时光倒流。

问题在于,当AF / w快门开启(不要问为什么不是这样)时,相机偶尔会在40400的actTakePicture上出错。 / p>

解决方法尝试

我尝试的解决方法如下:

  1. 检查型号,以及a7iii / a7riii / a9(以及其他几个)
  2. 检查焦点状态,如果聚焦(或为零)
  3. 检查对焦模式以及AF还是无(这是问题所在!)
  4. 半按快门
  5. 等待focusState更改为焦点

问题是a7iii e.t.c.似乎没有通过事件报告其焦点模式,也没有响应getFocusMode API请求,即使该请求已在其支持的功能中列出。这意味着要代替上面的步骤5。我必须:

  1. 在半按响应时立即执行actTakePicture,因为如果相机处于MF模式,对焦状态将不会改变。
  2. 如果失败并显示40400(拍摄失败),请忽略该错误,因为可能是我们处于自动对焦状态。

这在理论上都是可行的:

自动对焦

用户按下快门→调用halfPressShutter→调用actTakePicture→如果成功,那么我们就完成了,如果失败→等待远离“聚焦”事件→调用actTakePicture

手动对焦

用户按下快门→调用halfPressShutter→调用actTakePicture→应该成功

问题的下一部分

问题的下一部分是,如果用户使用MF,则相机仍然会经常失败并显示40400,这会触发“自动对焦”下的流程,但是由于我们使用MF,我们不会不能从相机事件中获得焦点的任何变化。出于这个原因,非常重要的一点是,我可以检查相机是处于MF还是AF模式,而只需跳过halfPressShutter进行MF操作,否则我的代码会卡住,等待focusState更改。

在a7iii上调用getFocusMode似乎返回40401(相机未就绪),并且this link处于getMethodTypes响应之下,但似乎从未通过{{1}提供或发送事件}。如果有人设法做到这一点,或者想出如何通过难以置信的事件来发送它!

0 个答案:

没有答案