天天看点

C#制作简易播放器

.net framework里有了许多COM组件,我们可以根据应用程序的需要来使用这些组件,不用自己再去 “造轮子”了。

第一个示例是来制作一个VCD播放器.这里我使用了Windows自带的Media Play来播放多媒体文件。

06121401.JPG

选择‘工具箱’—‘组件’,右击,选择‘添加/移除项’—‘COM组件‘(如果你是第一次使用Windows Media Play控件,在列表中是没有这个控件的,可以在系统文件夹下找到,一般是在C:\Windows/System32/msdxm.ocx,把这个控件加入到控件列表中,就可以使用了。

代码如下:

 using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

namespace MPlayDemo

{

    public class Form1 : System.Windows.Forms.Form

    {

        private AxMediaPlayer.AxMediaPlayer axMediaPlayer1;

        public Form1()

        {

            InitializeComponent();

        }

        private void btnPlay_Click(object sender, System.EventArgs e)

            if(this.axMediaPlayer1.FileName.Trim()=="")

            {

                MessageBox.Show(this," 请选择要播放的文件!!!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                return;

            }

            this.axMediaPlayer1.Play();

        private void btnPause_Click(object sender, System.EventArgs e)

                MessageBox.Show(this," 请选择要播放的文件!!!"," 信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

            this.axMediaPlayer1.Pause();

        private void btnStop_Click(object sender, System.EventArgs e)

                MessageBox.Show(this,"请选择要播放的文件","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

            this.axMediaPlayer1.Stop();

        private void menuItem3_Click(object sender, System.EventArgs e)

            Application.Exit();

        private void menuItem2_Click(object sender, System.EventArgs e)

            this.openFileDialog1.ShowDialog();

            string strFileName = this.openFileDialog1.FileName;

            if(strFileName.Trim()=="")

            this.axMediaPlayer1.FileName = strFileName;

        private void menuItem4_Click(object sender, System.EventArgs e)

                    this.axMediaPlayer1.AboutBox();

        private void menuItem5_Click(object sender, System.EventArgs e)

            this.axMediaPlayer1.FastForward();

    }

}

第二个示例是制作一个DVD播放器:

06121402.JPG

选择‘工具箱’—‘组件’,右击,选择‘添加/移除项’—‘COM组件‘把“MSWebDVD

”这个控件加入到控件列表中,就可以使用了。

namespace DVDPlayDemo

        private AxMSWEBDVDLib.AxMSWebDVD axMSWebDVD1;

        Windows

            try

                this.axMSWebDVD1.Play();

            catch(System.Exception ex)

                MessageBox.Show(ex.Message.ToString());

                this.axMSWebDVD1.Pause();

                this.axMSWebDVD1.Stop();

        private void btnOut_Click(object sender, System.EventArgs e)

                this.axMSWebDVD1.Eject();

第三个示例是制作一个Flash播放器。选择‘工具箱’—‘组件’,右击,选择‘添加/移除项’—‘COM组件‘把“Shockwave Flash Object”这个控件加入到控件列表中,就可以使用了。

06121403.JPG

using System;

namespace FlashPlayDemo

        private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1;

            if(this.openFileDialog1.ShowDialog()==DialogResult.OK)

                this.axShockwaveFlash1.Movie = this.openFileDialog1.FileName;

                this.Text = "播放的是-"+this.openFileDialog1.FileName;

            if(this.openFileDialog1.FileName.Length>0)

                this.axShockwaveFlash1.Play();

            else

                MessageBox.Show(this,"请选择文件!!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                this.axShockwaveFlash1.Stop();

        private void btnFisrt_Click(object sender, System.EventArgs e)

                this.axShockwaveFlash1.Rewind();

        private void btnLast_Click(object sender, System.EventArgs e)

                this.axShockwaveFlash1.Back();

                MessageBox.Show(this,"请选择文件!!!","信息提示“,MessageBoxButtons.OK,MessageBoxIcon.Information);

        private void btnNext_Click(object sender, System.EventArgs e)

                this.axShockwaveFlash1.Forward();

                MessageBox.Show(this,"请选择文件!!!","信息提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);

第四个示例是制作一个RealPlay播放器。选择‘工具箱’—‘组件’,右击,选择‘添加/移除项’—‘COM组件‘,把“RealPlayer G2 Control”这个控件加入到控件列表中,就可以使用了。

06121404.JPG

为了简单起见,就直接使用它的控制面板了,代码如下:

namespace RealPlayDemo

        private AxRealAudioObjects.AxRealAudio axRealAudio1;

                this.axRealAudio1.Source = this.openFileDialog1.FileName;

                this.axRealAudio1.DoPlay();

最后一个示例是对第一个Windows Media Play播放器的扩展,用它来制作一个Mp3播放器。选择‘工具箱’—‘组件’,右击,选择‘添加/移除项’—‘COM组件‘,把“Windows Media Play”这个控件加入到控件列表中,就可以使用了。

06121405.JPG

using System.IO;

namespace MP3PlayerDemo

                this.listView1.Items.Clear();

                string[] FileNames = this.openFileDialog1.FileNames;

                foreach(string fName in FileNames)

                {

                    System.IO.FileInfo fInfo = new FileInfo(fName);

                    float fSize = (float)fInfo.Length/(1024*1024);

                    this.axMediaPlayer1.FileName = fName;

                    this.axMediaPlayer1.Stop();

                    string author = this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipAuthor);

                    string shortFileName = fName.Substring(fName.LastIndexOf("\\")+1);

                    shortFileName = shortFileName.Substring(0,shortFileName.Length-4);

                    string[] subItem = {shortFileName,author,fSize.ToString().Substring(0,4)+"M",fName};

                    ListViewItem item = new ListViewItem(subItem);

                    this.listView1.Items.Add(item);

                    this.listView1.Items[0].Selected = true;

                }

            if(this.listView1.Items.Count>0)

                if(this.listView1.SelectedItems.Count>0)

                    int pos = this.listView1.SelectedItems[0].Index;

                    string fName = this.listView1.Items[pos].SubItems[3].Text;

                    this.axMediaPlayer1.Play();

                else

                    MessageBox.Show(this,"ÇëÑ¡ÔñÒª²¥•ÅµÄ¸èÇú!!!","ÐÅÏ¢Ìáʾ",MessageBoxButtons.OK,MessageBoxIcon.Information);

            if(this.axMediaPlayer1.FileName.Length>0)

                this.axMediaPlayer1.Pause();

                MessageBox.Show(this,"请选择要播放的歌曲!!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                this.axMediaPlayer1.Stop();

                MessageBox.Show(this," 请选择要播放的歌曲!!!"," 信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                    if(pos>0)

                    {

                        this.listView1.Items[pos-1].Selected = true;

                        string fName = this.listView1.Items[pos-1].SubItems[3].Text;

                        this.axMediaPlayer1.FileName = fName;

                        this.axMediaPlayer1.Play();

                    }

                    else

                        MessageBox.Show(this,"已经是第一首歌曲了!!!"," 信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                    MessageBox.Show(this," 请选择要播放的歌曲!!!"," 信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                    if(pos<this.listView1.Items.Count-1)

                        this.listView1.Items[pos+1].Selected = true;

                        string fName = this.listView1.Items[pos+1].SubItems[3].Text;

                        MessageBox.Show(this,"已经是最后一首歌曲了!!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

                    MessageBox.Show(this," 请选择要播放的歌曲!!!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/12/14/592557.html,如需转载请自行联系原作者

继续阅读