Sony a7iii / a7riii和a9都存在通过远程相机API在自动对焦中拍摄的问题。显然,有一种解决方法(因为它似乎与PlayMemories应用程序兼容),我试图在自己制作的应用程序中重现该方法,但是它似乎并不完美,并且在反复拍摄时会引起问题喜欢游戏中时光倒流。
问题在于,当AF / w快门开启(不要问为什么不是这样)时,相机偶尔会在40400的actTakePicture
上出错。 / p>
我尝试的解决方法如下:
问题是a7iii e.t.c.似乎没有通过事件报告其焦点模式,也没有响应getFocusMode
API请求,即使该请求已在其支持的功能中列出。这意味着要代替上面的步骤5。我必须:
actTakePicture
,因为如果相机处于MF模式,对焦状态将不会改变。这在理论上都是可行的:
用户按下快门→调用halfPressShutter→调用actTakePicture→如果成功,那么我们就完成了,如果失败→等待远离“聚焦”事件→调用actTakePicture
用户按下快门→调用halfPressShutter→调用actTakePicture→应该成功
问题的下一部分是,如果用户使用MF,则相机仍然会经常失败并显示40400,这会触发“自动对焦”下的流程,但是由于我们使用MF,我们不会不能从相机事件中获得焦点的任何变化。出于这个原因,非常重要的一点是,我可以检查相机是处于MF还是AF模式,而只需跳过halfPressShutter
进行MF操作,否则我的代码会卡住,等待focusState
更改。
在a7iii上调用getFocusMode
似乎返回40401(相机未就绪),并且this link处于getMethodTypes
响应之下,但似乎从未通过{{1}提供或发送事件}。如果有人设法做到这一点,或者想出如何通过难以置信的事件来发送它!