EasyCVR平台本身具备订阅功能,订阅是TSINGSEE青犀视频开发国标系统中的一个机制,主要目的就是保持上下级域之间的目录结构,设备状态保持一致。在我们开发EasyCVR对接华为IVS平台时,这个订阅是可以通过接口来变更摄像机和用户的,本文我们就介绍一下这个接口。
摄像机和用户变更订阅成功后,当视频监控平台产生摄像机和用户变更时,会推送给调用方,推送信息内容参见IVS_USER_CAMERA_INFO_CHANGE结构体。下级域的使用场景,先订阅再获取下级域的用户列表,该订阅才会生效。
代码如下:
//cpp code
IVS_INT32 IVS_SDK_SubscribeUserCameraInfoChange(
IVS_INT32 iSessionID,
const IVS_CHAR *pReqXml);
//cpp code
IVS_UINT32 uiUserID = 0;
CString strUserId = "";
IVS_INT32 iRet = IVS_SDK_GetUserID(iSessionID, &uiUserID);//获取用户ID
if (IVS_SUCCEED == iRet)
{
strUserId.Format("%d", uiUserID);
}
else
{
return;
}
CString strReqXml = "";
strReqXml += "<Content>";
strReqXml += "<DomainCode>810960fa859747abaabc9ee3e8328f58</DomainCode>";
strReqXml += "<Subscribe>";
strReqXml += "<SubscribeID>64</SubscribeID>";
strReqXml += "<SubscribeType>1</SubscribeType>"; //1 用户;2 摄像机;3 用户摄像机同时订阅;
strReqXml += "</Subscribe>";
strReqXml += "</Content>";
iRet = IVS_SDK_SubscribeUserCameraInfoChange(iSessionID, strReqXml);
if (IVS_SUCCEED == iRet)
{
//成功
}