我正在尝试实现一个ONVIF协议CreateRecording
但我不断得到响应
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Receiver</env:Value>
<env:Subcode>
<env:Value>ter:ActionNotSupported</env:Value>
<env:Subcode>
<env:Value>ter:InvalidOperation</env:Value>
</env:Subcode>
</env:Subcode>
</env:Code>
<env:Reason>
<env:Text xml:lang="en">Optional Action Not Implemented</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
发送的XML是
<SOAP-ENV:Body>
<trc:CreateRecording xmlns:trc="http://www.onvif.org/recording/wsdl">
</trc:CreateRecording>
</SOAP-ENV:Body>
我没有发送任何参数,它应该给我一个错误,而不是说Action not Implemented
。同样,如果我请求CreateRecordingJob
,它会给我一个有效的错误,即没有现有录制令牌的参考,
执行所有操作的目的是为了获取onvif
相机的本地存储空间,请遵循此文档http://www.onvif.org/onvif/ver10/recording.wsdl
即使我已经在相机端添加了手动录制,如图中所示,但我想我想首先通过Onvif Doc创建所有内容,然后它会给我所有录制内容
但我不知道如何从录音中获取ReocrdingToken
。
澄清相机正在为获取其个人资料或NetworkInformation所做的一切提供正确答案。
如果我这样做
<SOAP-ENV:Body>
<trc:GetRecordingJobs xmlns:trc="http://www.onvif.org/ver10/recording/wsdl/GetRecordingJobs"></trc:GetRecordingJobs>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
我得到一个空身
<env:Body>
<trc:GetRecordingJobsResponse></trc:GetRecordingJobsResponse>
</env:Body>
答案 0 :(得分:0)
如果你想要recordingToken,你应该在RecordingPortClient上调用GetRecordings。这将返回一个RecordingResponseItems数组,每个项目都有自己的标记。
使用ExportRecordedData功能,您可以将录制内容导出到您选择的存储位置。