Csharp: play media file using Windows Media Player

简介: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; usin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WMPLib;//引用Windows MediaPlay COM組件
using AxWMPLib; //在選項卡裏添加 Windows MediaPlay COM組件

namespace WindowsChineseCalender
{
    /// <summary>
    /// 塗聚文 20121222
    /// Geovin Du
    /// </summary>
    public partial class WindowMediaPlayForm : Form
    {
       // AxWMPLib.AxWindowsMediaPlayer wmp = new AxWMPLib.AxWindowsMediaPlayer();
       //this.Controls.Add(wmp);
        WMPLib.WindowsMediaPlayerClass player=new WMPLib.WindowsMediaPlayerClass();
        WMPLib.WindowsMediaPlayer Player;
        double d1;
        double d2;
        /// <summary>
        /// 
        /// </summary>
        public WindowMediaPlayForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void WindowMediaPlayForm_Load(object sender, EventArgs e)
        {
            player.URL = "";

            this.axWindowsMediaPlayer1.settings.autoStart = false;                     //設定不自動撥放
            this.tbarVolume.Minimum = 0;                                               //設定音量調整Bar最小值為最小音量值(0)
            this.tbarVolume.Maximum = 100;                                             //設定音量調整Bar最大值為最大音量值(100)
            this.tbarVolume.Value = this.axWindowsMediaPlayer1.settings.volume;        //設定音量調整Bar目前值為目前音量值
            this.timer1.Enabled = true;


        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnupload_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.ShowDialog();
            openFileDialog1.Title = "Select video file..";
            openFileDialog1.InitialDirectory = Application.StartupPath;
            openFileDialog1.DefaultExt = ".avi";
            openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*";
            //vdo = new Video(openFileDialog.FileName);
            //player.URL = openFileDialog.FileName;
            //this.Controls.Add(player):
            axWindowsMediaPlayer1.URL = openFileDialog.FileName;

            this.Controls.Add(axWindowsMediaPlayer1);
            axWindowsMediaPlayer1.Ctlcontrols.play();
            d2 = axWindowsMediaPlayer1.currentMedia.duration;
            d1 = axWindowsMediaPlayer1.Ctlcontrols.currentPosition;
            this.textBox1.Text = d2.ToString() + "/" + d1.ToString();



        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPlay_Click(object sender, EventArgs e)
        {
           // player.controls.play();
            //player.enableContextMenu = true;//启用/禁用右键菜单
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStop_Click(object sender, EventArgs e)
        {
            //player.controls.stop();
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonFull_Click(object sender, EventArgs e)
        {
            //player.fullScreen = true;
            axWindowsMediaPlayer1.fullScreen=true;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="url"></param>
        private void PlayFile(String url)
        {
            Player = new WMPLib.WindowsMediaPlayer();
            Player.PlayStateChange +=
                new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
            Player.MediaError +=
                new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
            Player.URL = url;
            Player.controls.play();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="NewState"></param>
        private void Player_PlayStateChange(int NewState)
        {
            if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
            {
                this.Close();
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="pMediaObject"></param>
        private void Player_MediaError(object pMediaObject)
        {
            MessageBox.Show("Cannot play media file.");
            this.Close();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbarVolume_RightToLeftLayoutChanged(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.volume = this.tbarVolume.Value;      //改變音量大小
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbarPlayLoaction_Scroll(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.Ctlcontrols.currentPosition = tbarPlayLoaction.Value;          //改變撥放位置
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnIncreaseVolume_Click(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.volume += 1;       //音量大小+1
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDecreaseVolume_Click(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.volume -= 1;       //音量大小-1
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (this.axWindowsMediaPlayer1.currentMedia == null)
                return;
            this.tbarPlayLoaction.Maximum = (int)this.axWindowsMediaPlayer1.currentMedia.duration;          //設定撥放位置調整Bar最大值
            d2 = axWindowsMediaPlayer1.currentMedia.duration;
            d1 = axWindowsMediaPlayer1.Ctlcontrols.currentPosition;
            this.textBox1.Text = CalculateTime(d2) + "/" + CalculateTime(d1);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="Time"></param>
        /// <returns></returns>
        public string CalculateTime(double Time)
        {
            string mm, ss, CalculatedTime;
            int h, m, s, T;

            Time = Math.Round(Time);
            T = Convert.ToInt32(Time);

            h = (T / 3600);
            T = T % 3600;
            m = (T / 60);
            s = T % 60;

            if (m < 10)
                mm = string.Format("0{0}", m);
            else
                mm = m.ToString();
            if (s < 10)
                ss = string.Format("0{0}", s);
            else
                ss = s.ToString();

            CalculatedTime = string.Format("{0}:{1}:{2}", h, mm, ss);

            return CalculatedTime;
        }
    }
}

目录
相关文章
|
Windows
windows系统下运行QT视频播放器示例程序(Media Player Example )
windows系统下运行QT视频播放器示例程序(Media Player Example )
298 0
windows系统下运行QT视频播放器示例程序(Media Player Example )
|
Windows
Windows Media Center携手新浪、搜狐推出互联网视频
Windows Media Center携手新浪、搜狐推出互联网视频
490 0