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);

}

}

}