本文示範如何使用 HikPlayM4.dll 開啟並播放海康設備錄製的 .264 錄像檔,涵蓋初始化、開啟檔案、取得影像資訊、開始播放與錯誤處理的完整流程。

int PORT = 0; // 播放通道 0~15
private string m_strPlayFileName;
private void Form3_Load(object sender, EventArgs e)
{
// 設定最大音量
HikPlayer.Hik_PlayM4_SetVolume(PORT, 0xFFFF);
// 註冊檔案結束與編碼變更訊息
HikPlayer.Hik_PlayM4_SetFileEndMsg(PORT, pVideo.Handle, HikPlayer.WM_FILE_END);
HikPlayer.Hik_PlayM4_SetEncChangeMsg(PORT, pVideo.Handle, HikPlayer.WM_ENC_CHANGE);
}
private void btnPlay_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
m_strPlayFileName = openFileDialog1.FileName;
if (!string.IsNullOrEmpty(m_strPlayFileName))
{
OpenFile();
HikPlayer.Hik_PlayM4_SetPicQuality(PORT, true); // 高畫質
}
else
MessageBox.Show("請選擇檔案!!");
}
}
private void OpenFile()
{
// 開啟錄像檔
if (!HikPlayer.Hik_PlayM4_OpenFile(PORT, m_strPlayFileName))
{
MessageBox.Show("開啟檔案失敗,請確認檔案格式。");
return;
}
Play();
SetOpenState();
}
public void SetOpenState()
{
// 取得原始影像尺寸,自動調整播放器大小
HikPlayer.Hik_PlayM4_GetPictureSize(PORT, out int w, out int h);
// 設定疊加模式透明色
HikPlayer.Hik_PlayM4_SetOverlayMode(PORT, true, Color.FromArgb(255, 0, 255).ToArgb());
}
private void Play()
{
// 開始視訊解碼播放
HikPlayer.Hik_PlayM4_Play(PORT, pVideo.Handle);
// 開始音訊播放
HikPlayer.Hik_PlayM4_PlaySound(PORT);
}
Hik_PlayM4_OpenFile:開啟 .264 檔,失敗可用 Hik_PlayM4_GetLastError 取得錯誤碼。Hik_PlayM4_GetPictureSize:取得影像原始寬高,用於自適應播放視窗。Hik_PlayM4_SetOverlayMode:啟用疊加模式,指定透明色(如洋紅 0xFF00FF)。Hik_PlayM4_Play / PlaySound:分別啟動視訊與音訊渲染。pVideo.Handle 有效、已呼叫 SetOverlayMode、顯示卡支援 Overlay。PlaySound 是否成功。