當你認真完成客戶端與伺服器端開發後,其實已掌握 VC++ 轉 C# 的核心技巧,配合 Google 搜尋即可獨立完成播放器。但為系列完整性,仍詳細記錄播放器核心 API 封裝過程。
播放器核心庫為 HikPlayM4.dll (對應 VC++ 的 HikPlayM4.lib/.dll),提供檔案播放、即時串流播放、畫面控制、截圖、轉檔等功能。
static extern 方式 P/Invoke 宣告HWND→IntPtr、LONG→int、DWORD→uint、回調函數→delegate[MarshalAs(UnmanagedType.LPStr)] 或 StringBuilderHik_PlayM4_GetLastError| API 名稱 | 功能 | 關鍵參數 |
|---|---|---|
Hik_PlayM4_OpenFile | 開啟本地 .264 檔案 | port, filename |
Hik_PlayM4_Play | 開始播放 | port, hwnd |
Hik_PlayM4_Pause | 暫停/繼續 | port, pause(0/1) |
Hik_PlayM4_Stop | 停止播放 | port |
Hik_PlayM4_SetVolume | 設定音量 | port, volume(0~0xFFFF) |
Hik_PlayM4_Fast | 加速播放 (最高 4 倍) | port |
Hik_PlayM4_Slow | 減速播放 (最低 1/4) | port |
Hik_PlayM4_SetPlayPos | 跳轉進度 (0.0~1.0) | port, pos |
Hik_PlayM4_CapturePicture | 截圖存檔 (BMP/JPG) | port, filename |
Hik_PlayM4_ConvertToBmpFile | YUV 資料轉 BMP 檔 | pBuf, size, w, h, type, filename |
Hik_PlayM4_SetDisplayCallBack | 設定顯示回調 (截圖用) | port, callback |
Hik_PlayM4_GetPictureSize | 取得影像原始寬高 | port, out w, out h |
Hik_PlayM4_SetOverlayMode | 設定覆蓋模式 (色鍵透明) | port, enable, colorKey |
HikPlayM4.dll 與 SDK 版本一致 (x86/x64 需對應)GetLastError 診斷完整封裝代碼請參考文章附件。下一篇將實作「播放錄影檔案」完整流程。
附件:HikPlayM4.dll 封裝原始碼