WEB开发网
开发学院软件开发C语言 C# 视频监控系列(12):H264播放器——播放录像文... 阅读

C# 视频监控系列(12):H264播放器——播放录像文件

 2009-04-08 08:23:32 来源:WEB开发网   
核心提示: 代码分析:1.从OnInitDialog部分代码可以看出主要是设置声音、判断是不是双击视频文件或者直接从流中读取数据,2.OpenFile和SetOpenState是打开文件、设置画面大小、显示统计信息,C# 视频监控系列(12):H264播放器——播放录像文件(2),如总帧数、视频总时间

代码分析:

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 

Tags:视频监控 系列 播放器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接