一、注册云平台账号,地址为:https://open.ys7.com/
账号分为个人版和企业版本,最主要的差别是:并发数和网络带宽限制
开发和测试阶段可以使用个人版,无须费用;正式产品发布的时候根据需要购买企业版即可。
二、下载萤石SDK,地址为:https://open.ys7.com/mobile/download.html
SDK支持多个平台,Windows 、Mac和Linux
本文主要讲述Windows相关开发要点
三、包含相关的头文件
主要文件如下:
OpenNetStreamDefine.h
OpenNetStreamError.h
OpenNetStreamInterFace.h
INS_ErrorCode.h
backward/OpenNetStreamBackwardWarning.h
backward/OpenNetStreamInterfaceBackward.h
四、包含相关的库文件
主要库文件如下:
AnalyzeData.lib libeay32.lib OpenNetStream.lib StunClientLib.lib
AudioIntercom.lib libGetHDSign.lib opensslwrap.lib SystemTransform.lib
hlog.lib libPPVClient2.lib paho-mqtt3c.lib TTSClient.lib
hpr.lib MidPage.lib PlayCtrl.lib pthreadVC2.lib udt.lib
libCASClient.lib miniupnpc.lib PushClient.lib
libcurl.lib NetStream.lib ssleay32.lib streamclient_lib.lib
五、开发流程
1、配置好账号信息:AppKey、Secret【进入注册的账号页面查看】
2、配置平台地址和授权地址:
<authaddress>https://openauth.ys7.com</authaddress>
<platformadress>https://open.ys7.com</platformadress>
3、初始化萤石SDK
示例代码如下:
CDataStoreMgr* pDS = CDataStoreMgr::GetDataStoreMgrInstance();
CGeneralSettings* pGeneralSettings = pDS->GetGeneralSettings();
CConstSettings* pConstSettings = pDS->GetConstSettings();
QString strAuthAdd = pConstSettings->m_strAuthAddress;
QString strPlatformAdd = pConstSettings->m_strPlatformAddress;
QString strAppKey = pConstSettings->m_strAppKey;
OpenNetStream* pONS = OpenNetStream::getInstance();
int nRet = pONS->initLibrary(strAuthAdd, strPlatformAdd, strAppKey);
//初始化视频窗口
for each (CVideoWnd* var in m_vectVideoWnds)
{
var->InitLib();
}
注:窗口是初始化主要是为每个窗口分配一个Session,建立一个视频链接的
4、访问AccessToken配置,【注册进入的账号页面有个测试token】,在代码中需要动态获取,最好在过期前一天(有效期7天)跟萤石云平台或者一次更新,
特别留意:频繁请求可能导致封账号
请求token示例代码如下:
QString strRet("");
QDateTime dtCur = QDateTime::currentDateTime();
qint64 nCurr = dtCur.toMSecsSinceEpoch();
CConstSettings* pCS = CDataStoreMgr::GetDataStoreMgrInstance()->GetConstSettings();
CGeneralSettings* pGS = CDataStoreMgr::GetDataStoreMgrInstance()->GetGeneralSettings();
qint64 nExpire = pGS->m_nTokenExpireTime;
if (nExpire <= nCurr) //重新请求Token
{
QUrl url("https://open.ys7.com/api/lapp/token/get");
QNetworkRequest requestURL(url);
QByteArray paramsByte;
QString strParams = QString("appKey=%1&appSecret=%2").arg(pGS->m_strAppKey).arg(pGS->m_strSecret);
paramsByte = strParams.toUtf8();
QNetworkReply* pReplay = m_networkMgr.post(requestURL,paramsByte);
}
else
{
strRet = pGS->m_strToken;
}
return strRet;
5、以上步骤都成功了,就可以进行视频控制
参考**:https://www.apps121.com/2018/10/08/ezviz_sdk_redev/ |