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

正文內容

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

2025-08-14 11:21本頁面
  

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