为什么RX100M5在尝试执行setContShootingMode时返回错误12(没有这样的方法)?

时间:2018-01-17 21:29:25

标签: sony sony-camera-api

编辑:我接受了下面的答案之一,但有一个问题,我会在这里说明细节:

您必须更新Sony相机上的Smart Remote Embedded应用程序才能访问缺少的功能。但是如果你尝试使用索尼相机上的板载操作系统来做这件事,它将会失败(至少它对我有用)。相反,您必须为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文档中包含的此表提供:

Support API groups for each compatible camera

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

2 个答案:

答案 0 :(得分:1)

我也有RX100M5并且在访问表格中的大多数功能时遇到了问题。

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

答案 1 :(得分:1)

您是否已连接到PlaymemoriesApp商店并下载了最新版本的“智能遥控器”?预先安装的远程应用程序非常有限(根据我的经验)。

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