c# 利用DirectX 播放视频
在日常的开发项目时,一般都是利用Windows Media Player播放视频,最近做一个项目,用Windows Media Player播放视频时,会遇到播放的时候视频就变成音频了文件了,只有声音没有影像,展现出音频的波纹。但是找了很久原因也没有找到问题的所在。
后来决定换个插件来播放音频,于是找到了安装暴风影音之类的插件,但是经过自己的实际使用,发现这类播放器的插件添加
com组件中,在使用的时候会出现卡死的现象,毕竟这类插件都是非常大的,对于使用现场电脑环境不理想的项目还是不能够使用。
最终找到了利用DirectX 播放视频,这个使用起来就非常的方便,DirectX 毕竟是电脑自带的,下面介绍DirectX 播放视频的实现方式:
必须使用的引用:
using Microsoft.DirectX;
using Microsoft.DirectX.AudioVideoPlayback;
private Video video = null;
/// <summary>
/// 播放视频
/// </summary>
public void playVideo()
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//获取视频路径
string strFile = openFileDialog1.FileName;
try
{
//判断视频文件是否为空
if (this.video != null)
{
//判断是否已经在播放视频
if (this.video.Playing)
{
//如果已经播放视频了,就先关闭了
this.video.Stop();
}
}
//取得视频文件
this.video = new Video(strFile);
//控制播放视频窗口的大小(此项目是把视频放到一个panel中,panPlayOwner是一个panel)
int width = this.panPlayOwner.Width;
int height = this.panPlayOwner.Height;
this.video.Owner = this.panPlayOwner;
this.video.Owner.Width = width;
this.video.Owner.Height = height;
this.video.Play();
}
catch (DirectXException ex)
{
MessageBox.Show(ex.Message);
}
}
}