栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

基于VLC的本地视频播放器

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于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:

/// 
/// 初始化VLC控件
/// 
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(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

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号