代碼分析:
1.從OnInitDialog部分代碼可以看出主 要是設置聲音、判斷是不是雙擊視頻文件或者直接從流中讀取數據。
2.OpenFile和SetOpenState是打開文件、設置畫面大小、顯示統計 信息,如總幀數、視頻總時間。
3.Play播放打開的視頻文件。
4.注意這裡不討論直接從流中讀取數據並播放。
以下是非完全對應的C# Code:
//uesed port;can be from 0 to 15;
int PORT = 0;
//視頻文件路徑
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);
}
/// <summary>
/// 打開文件並播放
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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()
{
//打開播放文件
HikPlayer.Hik_PlayM4_OpenFile(PORT, m_strPlayFileName);
Play();
}
public void SetOpenState()
{
//m_bOpen=TRUE;
int m_nWidth, m_nHeight;
//獲取原始圖像的大小,可根據這個自動設置播放器大小
HikPlayer.Hik_PlayM4_GetPictureSize(PORT, out m_nWidth, out m_nHeight);
HikPlayer.Hik_PlayM4_SetOverlayMode(PORT, true, Color.FromArgb(255, 0, 255).ToArgb());
}
private void Play()
{
//開始播放
HikPlayer.Hik_PlayM4_Play(PORT, pVideo.Handle);//this.Handle);
//播放聲音
HikPlayer.Hik_PlayM4_PlaySound(PORT);
}
代碼說明:
1.相對於VC++例子,這裡省略了許多代碼,比如空委托、顯示統計信息等。
2.如 果文件打開出錯,有可能是前面視頻錄像文件有問題,你可以先用自帶的播放器試一下。
3.建議補充錯誤處理。