语音对讲说明文档

  • 格式:doc
  • 大小:572.50 KB
  • 文档页数:9

语音对讲说明文档一. 语音对讲功能语音对讲功能就是DVR 与网络端进行通话的功能。

对于现有的大华设备,视通、视豪系列只支持单向语音对讲:网络端到设备端。

视新、视通增强型系列支持双向语音对讲。

二. 接线方式1. DVR 端:视通、视豪系列(支持单向语音对讲:网络-)设备):视新、视通增强型系列(支持双向语音对讲):⑩音频接口, RCA 口连接(莲花头)。

可用随机附带的485转接线连接,其中红色RCA 接口为语音对讲输入接口,蓝色RCA 接口为音频输出接口,黄色RCA 接口为通道音频输入接口。

音频输出接口可以直接外接低阻抗值耳机、有源音箱或者通过功放驱动其他声音输出设备。

语音对讲输入接口必须采用有源拾音器。

连接好语音对讲输入接口(视通、视豪系列无此接口,不用连接)及音频输出接口,设备端的连线工作就完成了。

2. 网络端:网络端(PC 端)的音频输出接口可以直接外接低阻抗值耳机、有源音箱或者通过功放驱动其他声音输出设备。

音频输入接口采用麦克风或有源拾音器。

三. 语音对讲注意事项1. 语音对讲时,DVR 本地必须处于多画面监视状态。

由于DVR端只有一个音频输出口,处于单画面状态时,输出的是该画面对应的音频。

只有多画面时,才输出语音对讲的音频。

2.打开音频有独占方式(Play_PlaySound函数)和共享方式(Play_PlaySoundShare函数),多个程序同时打开音频时,请注意此区别,具体参见播放SDK说明。

3.语音对讲服务器开发可以参考网络SDK语音对讲Demo,在网络SDK开发包“Demo\分类Demo\语音对讲、日志管理”下四.网络SDK音频接口接口说明1.CLIENT_API BOOL CALL_METHOD CLIENT_QueryDevState(LONGlLoginID, int nType, char *pBuf, int nBufLen, int *pRetLen,int waittime)⏹函数说明:查询设备支持的对讲音频格式列表。

目前音频编码类型有:PCM、G711a、AMR、G711u和G726等。

在语音对讲之前,先查询设备支持的对讲音频格式列表,再指定某种格式(CLIENT_SetDeviceMode),然后进行对讲(CLIENT_StartTalkEx)。

⏹参数说明:[in]lLoginID登入返回的设备句柄[in]nType查询类型,这里为DH_DEVSTATE_TALK_ECTYPE类型。

[out]pBuf输出参数,用于接收查询返回的数据的缓存。

这里为结构体DHDEV_TALKFORMAT_LIST。

[in]nBufLen缓存长度,单位字节。

[out]pRetLen输出参数,实际返回的数据长度,单位字节。

[in]waittime查询状态等待时间。

2.CLIENT_API BOOL CALL_METHOD CLIENT_SetDeviceMode(LONGlLoginID, EM_USEDEV_MODE emType, void* pValue)⏹函数说明:设置对讲模式。

⏹参数说明:[in]lLoginID登入返回的设备句柄[in]emType设置类型。

DH_TALK_SERVER_MODE 服务器方式,用于音频数据转发,SDK内部不启动录音和解码。

DH_TALK_ENCODE_TYPE 指定对讲音频编码类型。

[in]pValue当类型为DH_TALK_ENCODE_TYPE时,参数为结构体DHDEV_TALKDECODE_INFO。

3.CLIENT_API LONG CLIENT_StartTalkEx(LONG lLoginID,pfAudioDataCallBack pfcb, DWORD dwUser);⏹函数说明:向设备发起语音对讲请求⏹参数说明:[in]lLoginID登入返回的设备句柄[in]pfcb用户自定义的数据回调接口[in]dwUser用户自定义信息,通过回调函数返回给用户回调函数参数说明typedef void(CALLBACK *pfAudioDataCallBack)(LONG lTalkHandle, char *pDataBuf, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser);(in)lTalkHandle就是CLIENT_StartTalkEx的返回值(in)pDataBuf回调出来的音频数据的内容(in)dwBufSize回调出来的音频数据的长度,(单位字节)(in)byAudioFlag音频数据归属标志0 表示是本地录音库采集的音频数据1 表示收到的设备发过来的音频数据(in)dwUser用户调用CLIENT_StartTalkEx时自定义的用户数据⏹返回值:成功返回和设备对讲的句柄,失败返回0;⏹典型应用:打开和设备的对讲;【注意】在V3.1.8以后(包含V3.1.8)才有这个接口,代替之前的CLIENT_StartTalk4.CLIENT_API BOOL CLIENT_SetAudioClientVolume(LONGlTalkHandle, WORD wVolume);⏹函数说明:在进行语音对讲的时候设置音量;⏹参数说明:[in]lTalkHandleCLIENT_StartTalkEx的返回值[in]wVolume要设置的音量,范围是0~0XFFFF,0的音量最小⏹返回值:成功返回TRUE,失败返回FALSE;⏹典型应用:【注意】在V3.1.8以后(包含V3.1.8)才有的。

5.CLIENT_API LONG CLIENT_TalkSendData(LONG lTalkHandle,char *pSendBuf, DWORD dwBufSize);⏹函数说明:向设备发送用户的音频数据,这里的数据可以是从CLIENT_StartTalkEx的回调接口中回调出来的数据;⏹参数说明:[in]lTalkHandleCLIENT_StartTalkEx的返回值;[in]pSendBuf要发送的音频数据;[in]dwBufSize是要发送的音频数据的长度,(单位字节)⏹返回值:成功时返回实际传输给设备的数据长度,失败返回-1⏹典型应用:接收到CLIENT_StartTalkEx的回调出来的录音数据后通过这个接口发送给设备。

【注意】在V3.1.8以后(包含V3.1.8)才有的。

6.CLIENT_API BOOL CLIENT_RecordStart();⏹函数说明:启动本地录音功能,录音采集出来的音频数据通过CLIENT_StartTalkEx的回调函数回调给用户,对应操作是CLIENT_RecordStop;⏹参数:无⏹返回值:成功返回TRUE,失败返回FALSE;⏹典型应用:语音对讲中使用;【注意】在V3.1.8以后(包含V3.1.8)才有的。

7.CLIENT_API BOOL CLIENT_RecordStop();⏹函数说明:停止本地录音,对应操作是CLIENT_RecordStart;⏹参数:无⏹返回值:成功返回TRUE,失败返回FALSE;⏹典型应用:语音对讲中使用;【注意】在V3.1.8以后(包含V3.1.8)才有的。

8.CLIENT_API void CLIENT_AudioDec(char*pAudioDataBuf, DWORD dwBufSize);⏹函数说明:对输入的音频数据进行解码;⏹参数说明:[in]pAudioDataBuf要求解码的音频数据内容;[in]dwBufSize要求解码的音频数据的长度,(单位字节)⏹返回值:无⏹典型应用:语音对讲中对设备传过来的数据进行解码;【注意】在V3.1.8以后(包含V3.1.8)才有的。

9.CLIENT_API BOOL CLIENT_StopTalkEx(LONG lTalkHandle);⏹函数说明:停止与设备的对讲,对应操作是CLIENT_StartTalkEx;⏹参数说明:[in]lTalkHandleCLIENT_StartTalkEx返回的对讲句柄⏹返回值:成功返回TRUE,失败返回FALSE;⏹典型应用:语音对讲中使用;【注意】在V3.1.8以后(包含V3.1.8)才有的。

10.CLIENT_API BOOL CLIENT_AudioBroadcastAddDev(LONGlLoginID);⏹函数说明:把设备增加到广播组中,当本地录音库启动后,采集出来的数据会自动发送给广播组中的设备,对应操作是CLIENT_AudioBroadcastDelDev;⏹参数说明:[in]lLoginID登录设备时得到的设备句柄⏹返回值:成功返回TRUE,失败返回FALSE;⏹典型应用:在语音对讲服务器开发中使用;【注意】在V3.1.8以后(包含V3.1.8)才有的。

11.CLIENT_API BOOL CLIENT_AudioBroadcastDelDev(LONGlLoginID);⏹函数说明:把设备从广播组中删除,对应操作是CLIENT_AudioBroadcastAddDev;⏹参数说明:[in]lLoginID设备句柄⏹返回值:成功返回TRUE,失败返回FALE;⏹典型应用:在语音对讲服务器开发中使用;【注意】在V3.1.8以后(包含V3.1.8)才有的。

12.CLIENT_API intCLIENT_InitAudioEncode(DH_AUDIO_FORMAT aft);⏹函数说明:初始化对讲中的音频编码接口,告诉SDK内部要编码的源音频数据的音频格式,对不支持的音频格式初始化会失败;⏹参数说明:[in]aft要编码的音频格式,类型DH_AUDIO_FORMAT⏹返回值:成功返回0,失败返回错误码,参考错误码解释;⏹相关函数:⏹典型应用:通过配置接口获取设备支持的音频解码格式,目前配置接口还不支持获取,这里的音频格式默认只支持(0,1,16,8000),格式表示是(编码类型,声道数,采样深度,采样率)13.CLIENT_API int CLIENT_AudioEncode(LONGlTalkHandle, BYTE *lpInBuf, DWORD *lpInLen, BYTE *lpOutBuf, DWORD *lpOutLen);⏹函数说明:进行音频的数据二次编码,从标准音频格式转换成设备支持的大华格式;⏹参数说明:[in]lTalkHandle该参数不起作用,仅为兼容考虑而保留,可填任意值。

[in]lpInBuf要编码的源音频数据;(in,out)lpInLen源音频数据的长度,当接口返回数据过长时,lpInLen的值是接口支持的最长的输入长度,最好不要超过1024*2,当返回成功时,其值表示剩下还没有编码数据长度,(单位字节)[out]lpOutBuf用来存储编码的音频数据;(in,out)lpOutLen调用接口时表示lpOutBuf的最大长度,当接口返回缓冲不足时,其值是需要的缓冲长度,(单位字节)⏹返回值:成功返回0,失败返回错误码,参考错误码解释⏹相关函数:CLIENT_InitAudioEncode,CLIENT_StartTalkEx,CLIENT_ReleaseAudioEncode⏹典型应用:在对讲中,如果是用户使用自己的录音数据,传给**的数据必须是经过编码的数据;14.CLIENT_API int CLIENT_ReleaseAudioEncode();⏹函数说明:解码功能使用完毕后,告诉接口清理内部资源;⏹参数说明:⏹返回值:成功返回0,失败返回错误码,参考错误码解释;⏹相关参数:CLIENT_InitAudioEncode,CLIENT_AudioEncode⏹典型应用:五.播放SDK音频相关接口说明4.BOOL PLAY_PlaySound(LONG nPort)⏹函数说明:打开声音;同一时刻只能有一路声音。