基于VLC的本地视频播放器

这两天利用Vlc.DotNet.Forms做了一个WinForm版本的本地视频文件播放器,可以实现文件播放、暂停、进度条拖拽、截图功能,在这里做一个简单的记录。

使用工具:VS2019 , VLC 3.0.11。

1、安装Vlc.DotNet.Forms

在项目NuGet管理中引入对应的依赖包,如下图。

 

2、获取Vlc.DotNet依赖的VLC类库

从官网(https://www.videolan.org/vlc/index.zh.html)下载VLC播放器安装包,本项目使用版本为vlc-3.0.11-win32.exe,解压安装包获取如下图所示的相关组件,复制到项目编译生成目录下。

 

3、使用VlcControl控件

VLC类库安装成功后(步骤1)即可使用封装好的VlcControl控件(WinForm自定义控件)进行视频播放相关操作,在工具箱中可以看到此控件,可以直接拖拽到界面使用。

 

动态创建VlcControl:

/// <summary>
/// 初始化VLC控件
/// </summary>
private void InitVlcControl()
{
	this.pnlVideo.SuspendLayout();
	this.vlcControl = new VlcControl();
	// 开始初始化
	this.vlcControl.BeginInit();
	this.vlcControl.BackColor = Color.Black;
	this.vlcControl.Dock = DockStyle.Fill;
	this.vlcControl.Spu = -1;
	// 设置VLC依赖组件目录
	this.vlcControl.VlcLibDirectory = new DirectoryInfo(Path.Combine(Application.StartupPath, "vlclib"));
	this.vlcControl.VlcMediaplayerOptions = null;
	this.vlcControl.Stopped += new EventHandler<VlcMediaPlayerStoppedEventArgs>(this.vlcControl_Stopped);
	this.pnlVideo.Controls.Add(this.vlcControl);
	// 初始化完成
	this.vlcControl.EndInit();
	this.pnlVideo.ResumeLayout();
}

注意

(1)必须调用BeginInit();方法开始进行初始化,否则VlcControl无法初始化成功,报错“未将对象引用设置到对象的实例”;

(2)必须设置VLC类库目录到VlcLibDirectory,否则无法编译,这里设置为程序所在目录下的“vlclib”文件夹,即步骤2中dll复制到的目录。

 

播放、暂停、截图等功能的实现比较简单,仅需调用VlcControl提供的接口方法即可实现。

// 播放本地文件
vlcControl.SetMedia(new Uri(videoFilePath));
vlcControl.Play();

// 暂停
vlcControl.Pause();

// 停止
vlcControl.Stop();

// 截图保存到指定文件
vlcControl.TakeSnapshot(imageSavePath);

// 设置进度,position为进度百分比,等于1时会停止播放
vlcControl.Position = position;

参考博文: https://www.cnblogs.com/kiba/p/11303137.html

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值