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

人生像一张洁白的纸,全凭人生之笔去描绘,玩弄纸笔者,白纸上只能涂成一摊胡乱的墨迹;认真书写者,白纸上才会留下一篇优美的文章。
原文地址:https://www.cnblogs.com/libj/p/6029197.html