C#利用微软DirectX做的视频播放器
2008-12-07 11:11
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.DirectX.AudioVideoPlayback; namespace playVideoProject { public partial class Form1 : Form { private Video myvideo = null; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { openFile.InitialDirectory=Application.StartupPath;//获取对话框显示时的初始目录 if (openFile.ShowDialog() == DialogResult.OK) { // 记录panel组件的大小 int height = panel1.Height; int width = panel1.Width; // 如果存在打开的Video文件,释放它 if (myvideo != null) { myvideo.Dispose(); } // 打开一个新的Video文件 myvideo = new Video(openFile.FileName); // 把Video文件分配给创建的Panel组件 myvideo.Owner = panel1; // 以记录的panel组件的大小来重新定义 panel1.Width = width; panel1.Height = height; // 播放AVI文件的第一帧,主要是为了在panel中显示 myvideo.Play(); myvideo.Pause(); } //确定窗体中的各按钮状态 if (myvideo == null) { button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; } else { button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; } } private void button3_Click(object sender, EventArgs e) { if (myvideo != null) { myvideo.Pause(); } } private void button2_Click(object sender, EventArgs e) { if (myvideo != null) { myvideo.Play(); } } private void Form1_Load(object sender, EventArgs e) { if (myvideo == null) { button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; } else { button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; } } private void button4_Click(object sender, EventArgs e) { if (myvideo != null) { myvideo.Stop(); } } private void panel1_Paint(object sender, PaintEventArgs e) { } } } |