用C#打造自己的播放器

来源:互联网 发布:数据库逻辑模型独立与 编辑:程序博客网 时间:2024/05/01 20:24

        您也可以去米鱼空间浏览  http://user.qzone.qq.com/120401332/blog/1273331343

 

        最近电脑很奇怪,好多播放器使用不了,于是一时兴起借用了PPS的播放组件给自己做了个简单的播放器,照样可以看电影,看视频。

         下面我来介绍一下我的制作过程。

          首先,在vs2008环境(我个人用的这个版本)中建一个windows窗口项目,名字自己定,好了之后打开工具箱,添加控件。步骤是:右击工具箱--选择项--com组件  在里面找到PowerPlayer Control点击确定(注意:为什么我的电脑里面没有这个控件呢?去这里看看上面是com组件http://baike.baidu.com/view/185316.htm?fr=ala0_1 解决方法就是先在别人电脑上烤一个PPS或者自己安装一个,最好自己先安装一个,组件会自动注册到VS2008中),接着就是将组件添加到窗体中,我们发现,并没有控制按钮,这时候去改一下属性ShowControl,将它设置成True就能看到下面的控制按钮区了,其它的属性可以一个一个的试试,看看是什么效果,这里我就不多说了。

          接着我们要做一个播放列表,同样,在窗体的边上可以放一个Listbox控件,在添加一个菜单,菜单项设置简单一点的,我们看电影经常用到的也就是添加文件列表,控制一下播放,那就添加一个文件菜单和播放菜单,菜单项是文件>>打开、添加文件列表、退出,播放>>播放/暂停、上一首、下一首、全屏、置顶。

         上面这些都做好了我们就要来实现它的功能了,首先我们看一下添加播放列表的功能,刚才我在文件菜单下添加了打开和添加文件列表,打开就是打开我们指定的唯一个文件进行播放,而添加文件列表就是添加多个文件到播放列表。下面代码就是实现添加单个文件,需要的控件有OpenFileDialog。

在添加文件之前我们先要listbox控件实现一个可以动态增加的数组类,要先添加一个类,ArrayList files 解释( http://msdn.microsoft.com/zh-cn/library/system.collections.arraylist(VS.90).aspx) 使用大小可按需动态增加的数组实现IList 接口。它的名词空间是using System.Collections;

  ArrayList  files  =  new  ArrayList();

单个文件添加。

 private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dd = new OpenFileDialog();
            dd.Filter = "影视文件(*.rmvb;*.avi;*.wmv;*.dat;*.mpg;*.mpeg;*.mov;*.wm;*.wma)|*.rmvb;*.avi;*.wmv;*.dat;*.mpg;*.mpeg;*.mov;*.wm;*.wma|所有文件(*.*)|*.*";
            dd.ShowDialog();
            for (int i = 0; i < dd.FileNames.Length; i++)
            {
                files.Add(dd.FileNames[i]);
                int filenameIndex = dd.FileNames[i].LastIndexOf("//");
                string filename = dd.FileNames[i].Substring(filenameIndex + 1);
                listBox1.Items.Add(filename);
            }
        }

         添加多个文件就是将OpenFileDialog的Multiselect属性的值设置成True,也就是允许选择多个文件,这样,我们就已经实现了添加文件列表的功能了。接着我们要做的是双击列表中的文件就去播放它,这才是问题的关键所在。

        PPS播放组件PowerPlayer Control要播放文件首先要给它指定这个文件的位置,也就是文件地址,在C#中PowerPlayer Control的名字默认为axPowerPlayer1,它有一个属性src,用它就可以实现指定文件的播放了,axPowerPlayer1播放的时候要用到一个方法 Play() ,给listbox定义一个双击事件,代码如下。

    private void listBox1_DoubleClick(object sender, EventArgs e)

          {

                    axPowerPlayer1.src = Convert.ToString(files[listBox1.SelectedIndex]);
                    axPowerPlayer1.Play();

          }

         这样就实现了指定文件的播放,那我们的播放器已经完成了80%了,下面的代码主要是刚才菜单 播放 中的,

         播放/暂停 功能

            int pusest = axPowerPlayer1.Pause();这里的1是暂停 否则就是播放
            if (pusest == 1)  播放               

            else 暂停

           if,else的判断内容可以自定。

 

        上一首/下一首 功能(这里是 上一首 的功能)

         if (listBox1.SelectedIndex < listBox1.Items.Count)  (注意:如果Count - 1 那就是下一首)
                {
                    listBox1.SelectedIndex--;
                }
                else
                {
                    listBox1.SelectedIndex = 0;
                }
                axPowerPlayer1.src = Convert.ToString(files[listBox1.SelectedIndex]);
                axPowerPlayer1.Play();

 

           全屏播放功能很简单,就是就是将axPowerPlayer1的SetFullScreen属性设置成 (1);

                axPowerPlayer1.SetFullScreen(1);

 

           置顶功能

          if (窗口置顶DToolStripMenuItem.Text == "窗口置顶")
            {
                this.TopMost = true;
                窗口置顶DToolStripMenuItem.Text = "取消置顶";
            }
            else
            {
                this.TopMost = false;
                窗口置顶DToolStripMenuItem.Text = "窗口置顶";

            }

 

          好了,我就介绍到这里,剩下一下功能大家可以尝试着做,比如说打开和关闭播放列表的功能,清空列表,删除选定文件等等,还有设置播放模式的功能。

         当然,上面我所讲的也有好多不到位或者不正确的地方,希望大家能够指出来,有助我改正,有助于大家学习。

 

         这里我提供源码下载,大家可以下载拿去看看 我的播放器源码.rar          

 

        效果图

 

 播放器效果图

 

原创粉丝点击