文档中心>物联网智能视频服务(消费版)

快速开始

最近更新时间:2021-06-23 10:21:31

我的收藏

第一步:集成

平台
SDK 描述
SDK 及 Demo 源码
PC
Windows64,Windows7,Windows10
1. 填写 申请表 进行申请。
2. 完成申请后,相关工作人员将联系您进行需求沟通,并提供对应 SDK 及 Demo。
说明:
demo 是基于 QT5.9 版本进行开发,套件选择 msvc2015 及以上。

第二步:接入准备

说明:
开始使用 SDK 前,我们还需要获取AccessIdAccessToken,获取方式如下:
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_HD0);
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();
所有接口的详细使用说明,请参见 SDK 接入多媒体