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

正文內(nèi)容

數(shù)字錄像機(jī)程序開發(fā)文檔-文庫吧

2025-07-21 06:42 本頁面


【正文】 f(reconnect%d\n, time(NULL))。 break。 default: break。 }}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。 } // //設(shè)置異常消息回調(diào)函數(shù) NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL)。 // //啟動(dòng)預(yù)覽并設(shè)置回調(diào)數(shù)據(jù)流 LONG lRealPlayHandle。 HWND hWnd = GetConsoleWindow()。 //獲取窗口句柄 NET_DVR_CLIENTINFO ClientInfo = {0}。 = hWnd。 //需要SDK解碼時(shí)句柄設(shè)為有效值,僅取流不解碼時(shí)可設(shè)為空 = 1。 //預(yù)覽通道號(hào) = 0。 //最高位(31)為0表示主碼流,為1表示子碼流0~30位表示連接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式。 = NULL。 //多播地址,需要多播預(yù)覽時(shí)配置 BOOL bPreviewBlock = false。 //請(qǐng)求碼流過程是否阻塞,0:否,1:是 lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, amp。ClientInfo, NULL, NULL, 0)。 if (lRealPlayHandle 0) { printf(NET_DVR_RealPlay_V30 error\n)。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } // //關(guān)閉預(yù)覽 NET_DVR_StopRealPlay(lRealPlayHandle)。 //注銷用戶 NET_DVR_Logout(lUserID)。 //釋放SDK資源 NET_DVR_Cleanup()。 return。}方式二(由用戶自行處理回調(diào)得到的碼流數(shù)據(jù),此處以軟解顯示為例,代碼中帶有PlayM4_的函數(shù)參見軟解碼庫說明文檔《播放器SDK編程指南》)include include iostreaminclude include include include using namespace std。LONG lPort。 //全局的播放庫port號(hào)void CALLBACK g_RealDataCallBack_V30(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,void* dwUser){ HWND hWnd=GetConsoleWindow()。 switch (dwDataType) { case NET_DVR_SYSHEAD: //系統(tǒng)頭 if (!PlayM4_GetPort(amp。lPort)) //獲取播放庫未使用的通道號(hào) { break。 } //m_iPort = lPort。 //第一次回調(diào)的是系統(tǒng)頭,將獲取的播放庫port號(hào)賦值給全局port,下次回調(diào)數(shù)據(jù)時(shí)即使用此port號(hào)播放 if (dwBufSize 0) { if (!PlayM4_SetStreamOpenMode(lPort, STREAME_REALTIME)) //設(shè)置實(shí)時(shí)流播放模式 { break。 } if (!PlayM4_OpenStream(lPort, pBuffer, dwBufSize, 1024*1024)) //打開流接口 { break。 } if (!PlayM4_Play(lPort, hWnd)) //播放開始 { break。 } } case NET_DVR_STREAMDATA: //碼流數(shù)據(jù) if (dwBufSize 0 amp。amp。 lPort != 1) { if (!PlayM4_InputData(lPort, pBuffer, dwBufSize)) { break。 } } }}void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser){ char tempbuf[256] = {0}。 switch(dwType) { case EXCEPTION_RECONNECT: //預(yù)覽時(shí)重連 printf(reconnect%d\n, time(NULL))。 break。 default: break。 }}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。 } // //設(shè)置異常消息回調(diào)函數(shù) NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL)。 // //啟動(dòng)預(yù)覽并設(shè)置回調(diào)數(shù)據(jù)流 LONG lRealPlayHandle。 NET_DVR_CLIENTINFO ClientInfo = {0}。 = NULL。 //需要SDK解碼時(shí)句柄設(shè)為有效值,僅取流不解碼時(shí)可設(shè)為空 = 1。 //預(yù)覽通道號(hào) = 0。 //最高位(31)為0表示主碼流,為1表示子碼流0~30位表示連接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式。 = NULL。 //多播地址,需要多播預(yù)覽時(shí)配置 BOOL bPreviewBlock = false。 //請(qǐng)求碼流過程是否阻塞,0:否,1:是 lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, amp。ClientInfo, g_RealDataCallBack_V30, NULL, 0)。 if (lRealPlayHandle 0) { printf(NET_DVR_RealPlay_V30 error\n)。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } // //關(guān)閉預(yù)覽 NET_DVR_StopRealPlay(lRealPlayHandle)。 //注銷用戶 NET_DVR_Logout_V30(lUserID)。 NET_DVR_Cleanup()。 return。} 回放和下載模塊流程l 按文件回放或下載需要通過查找錄像文件功能先獲取文件信息(相關(guān)接口NET_DVR_FindFile_VNET_DVR_FindNextFile_V30),然后根據(jù)獲取到的文件名開始回放或下載(相關(guān)接口NET_DVR_PlayBackByName、NET_DVR_GetFileByName),特別提醒在調(diào)用了回放或下載的接口后,還必須調(diào)用控制接口(NET_DVR_PlayBackControl)的開始播放命令(NET_DVR_PLAYSTART)。l 按時(shí)間回放或下載文件時(shí),用戶可以無需調(diào)用查找錄像文件的相關(guān)接口,只要在接口中指定開始和結(jié)束時(shí)間,調(diào)用回放或下載接口(相關(guān)接口NET_DVR_PlayBackByTime、NET_DVR_GetFileByTime)后,還必須調(diào)用控制接口(NET_DVR_PlayBackControl)的開始播放命令(NET_DVR_PLAYSTART)。此時(shí),將按照指定時(shí)間范圍內(nèi)最近的有錄像的時(shí)間段開始回放或下載。用戶也可以通過調(diào)用查找錄像文件的相關(guān)接口,獲取文件的開始和結(jié)束時(shí)間后,按這個(gè)時(shí)間范圍指定回放或下載接口中的時(shí)間參數(shù),最后還必須調(diào)用控制接口(NET_DVR_PlayBackControl)的開始播放命令(NET_DVR_PLAYSTART)。l Linux下,按文件回放和按時(shí)間回放時(shí),若回放的窗口句柄不為NULL(即需要SDK解碼顯示),需要調(diào)用初始化窗口接口(NET_DVR_DrawAreaInit)進(jìn)行SDL窗口的初始化才能正常的解碼顯示,在停止回放時(shí),需要調(diào)用釋放窗口資源接口(NET_DVR_DrawAreaRelease)釋放窗口資源。 示例代碼示例一:查找錄像文件并下載include include iostreaminclude include using namespace std。int saveRecordFile(int userId,char * srcfile,char * destfile){ int bRes = 1。 int hPlayback = 0。 if( (hPlayback = NET_DVR_GetFileByName(userId, srcfile, destfile)) 0 ) { printf( GetFileByName failed. error[%d]\n, NET_DVR_GetLastError())。 bRes= 1。 return bRes。 } if(!NET_DVR_PlayBackControl(hPlayback, NET_DVR_PLAYSTART, 0, NULL)) { printf(play back control failed [%d]\n,NET_DVR_GetLastError())。 bRes=1。 return bRes。 } int nPos = 0。 for(nPos = 0。 nPos 100amp。amp。nPos=0。 nPos = NET_DVR_GetDownloadPos(hPlayback)) { Sleep(5000)。 //millisecond } printf(have got %d\n, nPos)。 if(!NET_DV
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1