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

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

     編輯:關於C語言

精簡版服務端本地預覽代碼:從 VC++ `OnPaint` 中提煉,僅保留單通道預覽邏輯。

C# 預覽代碼


// 成員變量
IntPtr _channelHandle;

private void Form2_Load(object sender, EventArgs e) {
    HikVisionSDK.SetDefaultVideoStandard(VideoStandard_t.StandardNTSC);
    if (HikVisionSDK.InitDSPs() < 0) { MessageBox.Show("DSP初始化失敗"); return; }
    if (HikVisionSDK.GetTotalDSPs() == 0) { MessageBox.Show("無可用通道"); return; }

    _channelHandle = HikVisionSDK.ChannelOpen(0);
    HikVisionSDK.SetIBPMode(_channelHandle, 100, 2, 1, 25); // IBP 間隔、B幀數、P幀數、幀率
    HikVisionSDK.SetDefaultQuant(_channelHandle, 15, 15, 20); // 量化參數

    StartVideoPreview();
}

private void StartVideoPreview() {
    Rectangle rect = panelVideo.ClientRectangle;
    HikVisionSDK.StartVideoPreview(_channelHandle, panelVideo.Handle, ref rect, false, 
        (int)TypeVideoFormat.vdfRGB16, 25);
}

private void Form2_Move(object sender, EventArgs e) {
    HikVisionSDK.StopVideoPreview(_channelHandle);
    StartVideoPreview(); // 窗口移動需重繪
}

設計說明

  • 預覽代碼獨立於服務端網絡邏輯,相對隔離
  • `Form2_Move` 中 `Stop`→`Start` 防止移動殘影
  • `panelVideo` 為承載預覽的 `Panel` 控件
  • `Rectangle` 直接對應非托管 `RECT` 結構

下一步

在預覽基礎上疊加服務端網絡回調,實現客戶端可連接(見下篇)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved