第一步:集成
平台 | SDK 描述 | SDK 及 Demo 源码 |
PC | Windows64,Windows7,Windows10 | 1. 填写 申请表 进行申请。 2. 完成申请后,相关工作人员将联系您进行需求沟通,并提供对应 SDK 及 Demo。 |
说明:
demo 是基于 QT5.9 版本进行开发,套件选择 msvc2015 及以上。
第二步:接入准备
说明:
开始使用 SDK 前,我们还需要获取
AccessId
和AccessToken
,获取方式如下:AccessId: 指外部访问 IoT Video(Consumer Version) 云平台的唯一性身份标识。
AccessToken: 登录成功后 IoT Video(Consumer Version) 云服务器返回的
AccessToken
。1. 获取 AccessId
用户自有账号体系可以采用云对接的方式实现账户体系相关业务,详情请参见 终端用户注册。
2. 获取 AccessToken
用户自有账号体系可以采用云对接的方式实现账户体系相关业务,详情请参见 终端用户接入授权。
第三步:SDK 初始化
1. 实现 SDK 类的实例化。
m_pIotVideoSdk = IoTVideoSdk::getInstance();
2. 注册消息回调函数。
m_pIotVideoSdk->addModelDataListener(std::bind(&Widget::ModelDataResp,this,std::placeholders::_1,std::placeholders::_2));
3. 用户账号接入服务器。
m_pIotVideoSdk->Register(accessId,accessToken);
第四步:创建监控播放器
说明:
如果同时监控多个设备,则实例化多个监控播放器类对象。
1. 监控播放器类对象实例化。
m_pIotVideoPlayer = new IoTVideoPlayer;
2. 注册监控播放器对应的回调函数或类对象。
2.1 实现渲染功能对象,注册对象实例。
m_pVideoRender = new VideoRenderCase(hShowWind);m_pIotVideoPlayer->setVideoRender(m_pVideoRender);
2.2 实现声音播放功能对象,注册对象实例。
m_pAudioRneder = new AudioRenderCase;m_pIotVideoPlayer->setAudioRender(m_pAudioRneder);
2.3 注册监控播放器的状态回调与错误回调函数。
m_pIotVideoPlayer->setStatusListener(std::bind(&Widget::playerStatusListener,this,std::placeholders::_1));m_pIotVideoPlayer->setErrorListener(std::bind(&Widget::playerErrorListener,this,std::placeholders::_1));
3. 开始监控设备。
m_pIotVideoPlayer->setDataResource(sDevID,IV_CONN_TYPE_MONITOR,VIDEO_DEFINITION_HD, 0);m_pIotVideoPlayer->play();
4. 停止监控。
m_pIotVideoPlayer->stop();
5. 音视频对讲。
5.1 设置音视频采集参数。
m_pIotVideoPlayer->setCaptureHeader(AVHeader *avHead);
5.2 音频对讲。
m_pIotVideoPlayer->sendAudioData(AVData *data);
5.3 发送视频。
m_pIotVideoPlayer->sendVideoData(AVData *data);
第五步:物模型消息通信
1. 获取物模型。
IoTReadRequest getModelReq(sDevID,sGetModeType);getModelReq.IoTTimeout([qDevID,this](std::string msg){emit this->getModelDataTimeout_sig(qDevID);}).IoTError([qDevID,this](std::string msg,int err){QString qsMsg = QString::fromStdString(msg);emit this->getModelDataError_sig(qDevID,qsMsg,err);}).IoTSuccess([qDevID,this](std::string msg){printf("sDevID=%s msg=%s\\n",qDevID.toStdString().c_str(),msg.c_str());QString qsMsg = QString::fromStdString(msg);emit this->getModelDataSuccess_sig(qDevID,qsMsg);}).IotSend();
2. 设置物模型。
IoTWriteRequest setModelReq(sDevID,sLeaf,sJdata);setModelReq.IoTTimeout([qDevID,this](std::string msg){emit this->setModelDataTimeout_sig(qDevID);}).IoTError([qDevID,this](std::string msg, int err){QString qsMsg = QString::fromStdString(msg);emit this->setModelDataError_sig(qDevID,qsMsg,err);}).IoTSuccess([qDevID,this](std::string msg){QString qsMsg = QString::fromStdString(msg);emit this->setModelDataSuccess_sig(qDevID,qsMsg);}).IotSend();