您的位置:首页 > 编程语言 > C#

Csharp: play media file using Windows Media Player

2012-12-22 15:03 609 查看
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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: