打印
[人机界面]

萤石云视频SDK二次开发

[复制链接]
2155|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
酷洵软件|  楼主 | 2018-10-8 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sdk, ST, TI, se, ge
一、注册云平台账号,地址为: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/

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

8

帖子

1

粉丝