为什么在尝试执行setContShootingMode 时RX100M5 return 错误12 (No such method)?

Why does the RX100M5 return error 12 (No such method) when trying to execute setContShootingMode?

编辑:我接受了以下答案之一,但有一个问题,我将在此处说明详细信息:

您必须更新索尼相机上的 Smart Remote Embedded 应用程序才能访问缺失的功能。但是,如果您尝试使用 Sony 相机上的板载 OS 来执行此操作,它将失败(至少对我而言如此)。相反,您必须为 Chrome 安装 PlayMemories Camera Apps Downloader 扩展:https://chrome.google.com/webstore/detail/playmemories-camera-apps/ohlghnkgcadghcdodlcjfhogekonhdei?utm_source=chrome-app-launcher-info-dialog

安装此扩展后,您必须访问此网站并登录,以便通过 USB 连接从浏览器安装更新到相机:https://www.playmemoriescameraapps.com/portal/


Sony Camera Remote API 的文档声称 RX100M5 支持许多 API 功能,包括 setContShootingMode。但是,当我尝试执行此命令时失败,并且当我轮询相机的可用 API 功能时,我收到了一个非常小的可用功能列表。

这些是我发送到相机的命令:

res = requests.post(addr, json={"method":"startRecMode", "params":[], "id":1, "version":"1.0"})
print(res.text)
success = json.loads(res.text)
success = success['result'][0]
if success != 0:
    print("Failed to start rec mode")
    exit(-1)

time.sleep(1)

res2 = requests.post(addr, json={"method":"startLiveview", "params":[], "id":1, "version":"1.0"})
print(res2.text)
liveRes = json.loads(res2.text)
liveUrl = liveRes['result'][0]

time.sleep(1)

res = requests.post(addr, json={"method":"setShootMode", "params":["still"], "id":1, "version":"1.0"})
print(res.text)

time.sleep(1)

res = requests.post(addr, json={"method":"getAvailableApiList", "params":[], "id":1, "version":"1.0"})
print(res.text)

time.sleep(1)

res = requests.post(addr, json={"method":"setContShootingMode", "params":[{"contShootingMode":"Spd Priority Cont."}], "id":1, "version":"1.0"})
print(res.text)

这是代码片段产生的控制台输出:

 {"id":1,"result":[0]}

 {"id":1,"result":"http://192.168.122.1:8080/liveview/liveviewstream"}

 {"id":1,"result":[0]}

 {"id":1,"result":[["getVersions","getMethodTypes","getApplicationInfo","getAvailableApiList","getEvent","actTakePicture","stopRecMode","startLiveview","stopLiveview","getSupportedSelfTimer","setExposureCompensation","getExposureCompensation","getAvailableExposureCompensation","getSupportedExposureCompensation","setShootMode","getShootMode","getAvailableShootMode","getSupportedShootMode","getSupportedFlashMode"]]}

 {"id":1,"error":[12,"setContShootingMode"]}

如您所见,setContShootingMode函数不可用,尝试执行失败。它应该基于 API 文档中包含的 table 可用:

为什么我不能在我的 RX100M5 上使用 table 中的大部分功能?

我也有 RX100M5,但在访问 table 中的大部分功能时遇到问题。

我的建议是更新固件,因为这解决了我的大部分问题。

您是否连接到 PlaymemoriesApp 商店并下载了 'Smart Remote' 的最新版本?预装的远程应用程序非常有限(根据我的经验)。

此外,您可能会发现带有模式转盘的相机会限制您在特定模式下的操作。您可以使用特定模式实现连拍。