首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 視頻監控系列(八):服務端預覽與客戶端連接(三)

     編輯:關於C語言

分析 VC++ Demo `VideoWin.cpp` 中 `OnPaint` → `StartVideoPreview` 的完整邏輯,為 C# 移植提供藍圖。

VC++ 關鍵代碼


// OnPaint
StartVideoPreview(&dc);

// StartVideoPreview
for (i=0; iFillRect(&previewWnd, &brush);

int numRects = GetTotalDSPs();
ZeroMemory(rectList, sizeof(rectList));
numRects = CacRects(GetTotalDSPs()); // 計算多畫面佈局矩形

for (i=0; i

代碼分析

  1. `OnInitDialog`:板卡初始化、服務端初始化、通道打開、編碼參數、註冊流回調、註冊消息通知、啟動服務端
  2. `StreamDirectReadCallback`:核心數據流回調,調用 `MP4_ServerWriteDataEx` 寫入發送緩衝,可選 `_write` 存文件
  3. 預覽觸發於 `OnPaint`,支持多畫面佈局(`CacRects` 計算矩形)

C# 移植策略

  • 單通道場景大幅簡化:無需 `CacRects`、多通道循環
  • 保留核心:`ChannelOpen`、`SetIBPMode`、`SetDefaultQuant`、`StartVideoPreview`
  • 流回調註冊移至服務端啟動流程(見下篇)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved