程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#視頻監控系列(12):H264播放器——播放錄像文件(2)

C#視頻監控系列(12):H264播放器——播放錄像文件(2)

編輯:關於C語言

代碼分析:

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.建議補充錯誤處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved