ビデオ監視システムクラウドソリューションEasyCVRは、Hikvision EHomeプライベートプロトコルシリーズ音声インターホン操作プロセスを統合します

TSINGSEE Qingxi Videoが開発した一部のビデオプラットフォームは、すでに音声インターコムの機能をサポートしています。屋内セキュリティビデオ監視では、音声インターコムの実用性を過小評価することはできません。そのため、EasyCVRビデオ監視システムを使用して、海のクラウドプラットフォームを統合しています。音声インターコム機能は、Kang EHomeプロトコルでも実現されています。

3.jpg

このドキュメントでは、Haikang EHomeプロトコルに基づく音声インターコム機能の実装手順について説明します。

音声インターコム操作を開始する前に、必ずNET_ECMS_Initを実行してCMSを初期化し、NET_ECMS_StartListenを実行してCMS監視サービスを開始してデバイス登録情報を受信して​​ください。

音声インターコムインターフェイスの通話プロセスを開く

79.png

デバイスは音声インターコム関数をサポートする必要があります。プログラムはNET_ECMS_StartListenを呼び出してCMS監視および登録コールバック関数を開始し、コールバック関数DEVICE_REGISTER_CBのdwDataTypeをENUM_DEV_ONに設定します。デバイスがサポートするバージョン情報は、構造体NET_EHOME_DEV_REG_INFOのメンバーbyDevProtocolVersionを通じてコールバックされます。

具体的な手順

1. NET_ECMS_StartVoiceTalkを呼び出し、NET_EHOME_VOICETALK_PARAのbyVoiceTalkを「0」に設定して、音声インターコムを開始します
。2。NET_ECMS_StopVoiceTalkを呼び出して、音声転送とインターコムを停止します。
3. NET_ECMS_ForceLogoutを呼び出して、デバイスのログアウトを強制します

コード例

#include <Windows.h>
#include "HCISUPCMS.h"

LONG lLoginID = -1;
LONG m_lVoiceTalkHandle = -1;

//
//注册回调函数
BOOL CALLBACK RegisterCallBack(LONG lUserID, DWORD dwDataType, void *pOutBuffer, DWORD dwOutLen, void *pInBuffer, DWORD dwInLen, void *pUser)
{
    if (ENUM_DEV_ON == dwDataType)
    {
       NET_EHOME_DEV_REG_INFO *pDevInfo = (NET_EHOME_DEV_REG_INFO *)pOutBuffer;

       if (pDevInfo != NULL)
       {
          lLoginID = lUserID;
          printf("On-line, lUserID: %d, Device ID: %s\n", lLoginID, pDevInfo->byDeviceID);
       }
       //输入参数
       NET_EHOME_SERVER_INFO *pServerInfo = (NET_EHOME_SERVER_INFO *)pInBuffer;
       pServerInfo->dwTimeOutCount = 6; //心跳超时次数
       pServerInfo->dwKeepAliveSec = 15; //心跳间隔
    }
    else if (ENUM_DEV_OFF == dwDataType)
    {
	printf("Off-line, lUserID: %d\n", lUserID);
	NET_ECMS_ForceLogout(lUserID);       
    }
    else
    {
    }

    return TRUE;
}

//
//语音数据回调函数
void CALLBACK g_fVoiceDataCallBack(LONG iVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, DWORD dwEncodeType, BYTE byAudioFlag, void *pUser)
{
    //获取到语音数据自行处理
}

void main(){

    
    
    //CMS注册和预览请求

    //CMS注册模块初始化
    NET_ECMS_Init();

    //注册监听参数
    NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = {0};
    memcpy(struCMSListenPara.struAddress.szIP, "0.0.0.0", sizeof("0.0.0.0"));
    struCMSListenPara.struAddress.wPort = 7660;
    struCMSListenPara.fnCB = RegisterCallBack;

    //启动监听服务,接收设备注册信息
    LONG lListen = NET_ECMS_StartListen(&struCMSListenPara);
    if(lListen < -1)
    {
        printf("NET_ECMS_StartListen failed, error code: %d\n", NET_ECMS_GetLastError());
        NET_ECMS_Fini();
        return;
    }
    printf("NET_ECMS_StartListen!\n");

    while(1)
    {
        Sleep(1000);  //注册成功之后再做后续操作
        if(lLoginID >= 0)
        {
            break;
        }
    }

    //语音对讲参数
    NET_EHOME_VOICETALK_PARA struVoiceTalkPara = {0};
    struVoiceTalkPara.bNeedCBNoEncData = 0; //需要回调的语音类型:0- 编码后语音,1- 编码前语音(语音转发时不支持) 
    struVoiceTalkPara.cbVoiceDataCallBack = g_fVoiceDataCallBack;
    struVoiceTalkPara.dwEncodeType = 0; //设备的语音编码类型:0- G722,1- G711U,2- G711A,3- G726,4- AAC,5- MP2L2,6- PCM
    struVoiceTalkPara.byVoiceTalk = 0; //语音对讲模式:0- 语音对讲,1- 语音转发

    DWORD dwVoiceChan = 1; //语音对讲通道号

    //开始语音对讲
    m_lVoiceTalkHandle = NET_ECMS_StartVoiceTalk(lLoginID, dwVoiceChan, &struVoiceTalkPara);
    if (m_lVoiceTalkHandle < 0)
    {
        printf("NET_ECMS_StartVoiceTalk failed, error code: %d\n", NET_ECMS_GetLastError());
        NET_ECMS_Fini();
        return;
    }

    Sleep(30000);

    //停止语音对讲
    if(!NET_ECMS_StopVoiceTalk(m_lVoiceTalkHandle))
    {
        printf("NET_ECMS_StopVoiceTalk failed, error code: %d\n", NET_ECMS_GetLastError());
        NET_ECMS_Fini();
        return;
    }

    
    //退出
	
    //CMS停止监听服务
    if(!NET_ECMS_StopListen(lListen))
    {
        printf("NET_ECMS_StopListen failed, error code: %d\n", NET_ECMS_GetLastError());
    }

    //CMS反初始化,释放资源
    NET_ECMS_Fini();

    printf("Exit!\n");
}

EasyCVRインターフェースのプレビュー:

EasyCVRバックグラウンド管理ビデオアクセスビデオスクエアV1.1.png

ビデオ関連のソリューションについては、Tsingseeビデオの公式Webサイトにアクセスして、システム効果の詳細を確認できます。www.tsingsee.comから無料でダウンロードしてテストできます

おすすめ

転載: blog.csdn.net/EasyNVS/article/details/108082252