freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

cctv程序開發(fā)-基于??甸_發(fā)包-資料下載頁

2025-08-14 11:21本頁面
  

【正文】 StopVoiceCom接口結(jié)束與設(shè)備的語音轉(zhuǎn)發(fā)連接。 l Linux下目前只支持語音轉(zhuǎn)發(fā)功能,暫不支持語音對(duì)講。 示例代碼示例一:語音對(duì)講include include iostreaminclude include using namespace std。void CALLBACK fVoiceDataCallBack(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, void* pUser){ printf(receive voice data, %d\n, dwBufSize)。}void main() { // // 初始化 NET_DVR_Init()。 //設(shè)置連接時(shí)間與重連時(shí)間 NET_DVR_SetConnectTime(2000, 1)。 NET_DVR_SetReconnect(10000, true)。 // // 注冊(cè)設(shè)備 LONG lUserID。 NET_DVR_DEVICEINFO_V30 struDeviceInfo。 lUserID = NET_DVR_Login_V30(, 8000, admin, 12345, amp。struDeviceInfo)。 if (lUserID 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } //語音對(duì)講 LONG lVoiceHanle。 lVoiceHanle = NET_DVR_StartVoiceCom_V30(lUserID, 1,0, fVoiceDataCallBack, NULL)。 if (lVoiceHanle 0) { printf(NET_DVR_StartVoiceCom_V30 error, %d!\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } Sleep(5000)。 //millisecond //關(guān)閉語音對(duì)講 if (!NET_DVR_StopVoiceCom(lVoiceHanle)) { printf(NET_DVR_StopVoiceCom error, %d!\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } //注銷用戶 NET_DVR_Logout(lUserID)。 //釋放SDK資源 NET_DVR_Cleanup()。 return。}示例二:語音轉(zhuǎn)發(fā)include include iostreaminclude include using namespace std。void CALLBACK fVoiceDataCallBack(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, void* pUser){ //此處的音頻數(shù)據(jù)是由設(shè)備發(fā)送的編碼后數(shù)據(jù),也可以是本地采集并編碼后的數(shù)據(jù) NET_DVR_VoiceComSendData(lVoiceComHandle, pRecvDataBuffer, 80)。}void main() { // // 初始化 NET_DVR_Init()。 //設(shè)置連接時(shí)間與重連時(shí)間 NET_DVR_SetConnectTime(2000, 1)。 NET_DVR_SetReconnect(10000, true)。 // // 注冊(cè)設(shè)備 LONG lUserID。 NET_DVR_DEVICEINFO_V30 struDeviceInfo。 lUserID = NET_DVR_Login_V30(, 8000, admin, 12345, amp。struDeviceInfo)。 if (lUserID 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } //語音轉(zhuǎn)發(fā) LONG lVoiceHanle。 lVoiceHanle = NET_DVR_StartVoiceCom_MR_V30(lUserID, 1, fVoiceDataCallBack, NULL)。 if (lVoiceHanle 0) { printf(NET_DVR_StartVoiceCom_MR_V30 error, %d!\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } Sleep(5000)。 //millisecond //關(guān)閉語音轉(zhuǎn)發(fā) if (!NET_DVR_StopVoiceCom(lVoiceHanle)) { printf(NET_DVR_StopVoiceCom error, %d!\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } //注銷用戶 NET_DVR_Logout(lUserID)。 //釋放SDK資源 NET_DVR_Cleanup()。 return。} 報(bào)警模塊流程報(bào)警可分為“布防”和“監(jiān)聽”兩種方式。采用兩種報(bào)警方式都可以接收到設(shè)備上傳的移動(dòng)偵測(cè)報(bào)警、視頻信號(hào)丟失報(bào)警、遮擋報(bào)警和信號(hào)量報(bào)警等信息。 l “布防”報(bào)警方式:是指SDK主動(dòng)連接設(shè)備,并發(fā)起報(bào)警上傳命令,設(shè)備發(fā)生報(bào)警立即發(fā)送給SDK。由“報(bào)警(布防)的流程圖”中看出,“布防”方式需要先進(jìn)行用戶注冊(cè)(NET_DVR_Login_V30)。虛線框部分是實(shí)現(xiàn)報(bào)警信息上傳的必要條件,主要完成相關(guān)的報(bào)警條件和處理方法的配置,參數(shù)配置的接口為NET_DVR_GetDVRConfig和NET_DVR_SetDVRConfig。支持的報(bào)警類型有移動(dòng)偵測(cè)、視頻信號(hào)丟失、遮擋和信號(hào)量報(bào)警,其中前三種報(bào)警類型對(duì)應(yīng)的報(bào)警條件和處理方法的配置結(jié)構(gòu)體是NET_DVR_PICCFG_V30,而信號(hào)量報(bào)警的配置結(jié)構(gòu)體是NET_DVR_ALARMINCFG_V30。這些參數(shù)如果已經(jīng)配置完成,那么虛線框部分可以省略。接下來就是設(shè)置報(bào)警回調(diào)函數(shù)(NET_DVR_SetDVRMessageCallBack_V30等),調(diào)用成功后還需要設(shè)置布防(NET_DVR_SetupAlarmChan_V30)。整個(gè)報(bào)警上傳過程結(jié)束后還需要調(diào)用撤防接口等操作。 l “監(jiān)聽”報(bào)警方式:是指SDK不主動(dòng)發(fā)起連接設(shè)備,只是在設(shè)定的端口上監(jiān)聽接收設(shè)備主動(dòng)上傳的報(bào)警信息。所以這個(gè)過程需要遠(yuǎn)程配置設(shè)備的報(bào)警主機(jī)地址(即PC機(jī)地址)和報(bào)警主機(jī)端口(即PC的監(jiān)聽端口),報(bào)警主機(jī)就在該端口上監(jiān)聽接收設(shè)備主動(dòng)上傳的報(bào)警信息。如果報(bào)警主機(jī)地址和報(bào)警主機(jī)端口已配置完成,那么“報(bào)警(監(jiān)聽)的流程圖”中虛線框“用戶注冊(cè)”和“配置報(bào)警主機(jī)地址和端口”部分就可以省略,但事先沒有配置,就必須調(diào)用參數(shù)配置接口(NET_DVR_GetDVRConfig和NET_DVR_SetDVRConfig)對(duì)設(shè)備的網(wǎng)絡(luò)參數(shù)(NET_DVR_NETCFG_V30)進(jìn)行配置。而虛線框“配置報(bào)警條件和處理方法”部分與“布防”中的一致。對(duì)以上需要配置的參數(shù)都設(shè)置完后,調(diào)用NET_DVR_StartListen_V30函數(shù),開啟SDK的監(jiān)聽端口,準(zhǔn)備接收設(shè)備上傳的報(bào)警信息。該方式適用于多個(gè)設(shè)備向一臺(tái)客戶端上傳報(bào)警,而且不需要設(shè)備登錄即可完成,設(shè)備重啟后不影響報(bào)警上傳;缺點(diǎn)是設(shè)備只支持一個(gè)報(bào)警主機(jī)地址和端口號(hào)的配置。 示例代碼示例一:布防報(bào)警include include iostreaminclude include using namespace std。void CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser){ int i。 NET_DVR_ALARMINFO struAlarmInfo。 memcpy(amp。struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO))。 switch(lCommand) { case COMM_ALARM: { switch () { case 3: //移動(dòng)偵測(cè)報(bào)警 for (i=0。 i 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } //設(shè)置報(bào)警回調(diào)函數(shù) NET_DVR_SetDVRMessageCallBack_V30(MessageCallback, NULL)。 //啟用布防 LONG lHandle。 lHandle = NET_DVR_SetupAlarmChan_V30(lUserID)。 if (lHandle 0) { printf(NET_DVR_SetupAlarmChan_V30 error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } Sleep(5000)。 //撤銷布防上傳通道 if (!NET_DVR_CloseAlarmChan_V30(lHandle)) { printf(NET_DVR_CloseAlarmChan_V30 error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } //注銷用戶 NET_DVR_Logout(lUserID)。 //釋放SDK資源 NET_DVR_Cleanup()。 return。}示例二:監(jiān)聽報(bào)警include include iostreaminclude include using namespace std。void CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser){ int i。 NET_DVR_ALARMINFO struAlarmInfo。 memcpy(amp。struAlarmInfo, pAlarmInfo, sizeof(NET_DVR_ALARMINFO))。 switch(lCommand) { case COMM_ALARM: { switch () { case 3: //移動(dòng)偵測(cè)報(bào)警 for (i=0。 i 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1