C#调用VlcControl做一个播放器

开发环境:

Visual Studio 2015

.Net Framework 4.5

1.新建一个Windows窗体应用程序

修改框架为.Net Framework 4.5

2.管理NuGet包

下载安装5个包

VideoLAN.LibVLC.Windows

Vlc.DotNet.Core 

Vlc.DotNet.Core.Interops 

Vlc.DotNet.Forms 

Vlc.DotNet.Wpf 

3.添加VlcControl

工具箱添加VlcControl,dll位于当前项目中

将VlcControl添加到窗体上

在VlcControl的VlcLibDirectoryNeeded事件中添加如下代码(必须)

1     /// <summary> 2 /// Looks for the vlc directory on the opening of the app 3 /// Opens a dialog if the libvlc folder is not found for the user to pick the good one 4 /// Folder for 32bits should be "libvlc\win-x86\" and "libvlc\win-x64\" for 64 bits 5 /// </summary> 6 /// <param name="sender"></param> 7 /// <param name="e"></param> 8 private void myVlcControl_VlcLibDirectoryNeeded(object sender, VlcLibDirectoryNeededEventArgs e) 9 { 10 var currentAssembly = Assembly.GetEntryAssembly(); 11 var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName; 12 13 if (currentDirectory == null) 14 return; 15 if (IntPtr.Size == 4) 16 e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x86\")); 17 else 18 e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x64\")); 19 20 if (!e.VlcLibDirectory.Exists) 21 { 22 var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); 23 folderBrowserDialog.Description = "Select Vlc libraries folder."; 24 folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop; 25 folderBrowserDialog.ShowNewFolderButton = true; 26 if (folderBrowserDialog.ShowDialog() == DialogResult.OK) 27 { 28 e.VlcLibDirectory = new DirectoryInfo(folderBrowserDialog.SelectedPath); 29 } 30 } 31 }

4.播放视频

使用VlcControl.Play()方法播放视频

1vlcControl1.Play("http://**************/******.flv");//只能播放网络流视频 2 3vlcControl1.SetMedia(new System.IO.FileInfo(@"f:\1.flv"));//本地视频 4vlcControl1.Play();

运行结果:


参考:

https://blog.csdn.net/xuehuic/article/details/53914874

https://bbs.csdn.net/topics/390168224

https://cloud.tencent.com/developer/ask/148529

https://github.com/ZeBobo5/Vlc.DotNet/wiki/Using-Vlc.DotNet-in-WinForms

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )