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 (可选)
LibVLCSharp(可选,支持一些扩展功能,如调整视频亮度)
3.添加VlcControl
工具箱添加VlcControl,dll位于当前项目中
将VlcControl添加到窗体上
在VlcControl的VlcLibDirectoryNeeded事件中添加如下代码(必须)
/// <summary> /// Looks for the vlc directory on the opening of the app /// Opens a dialog if the libvlc folder is not found for the user to pick the good one /// Folder for 32bits should be "libvlc\win-x86\" and "libvlc\win-x64\" for 64 bits /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void myVlcControl_VlcLibDirectoryNeeded(object sender, VlcLibDirectoryNeededEventArgs e) { var currentAssembly = Assembly.GetEntryAssembly(); var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName; if (currentDirectory == null) return; if (IntPtr.Size == 4) e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x86\")); else e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x64\")); if (!e.VlcLibDirectory.Exists) { var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); folderBrowserDialog.Description = "Select Vlc libraries folder."; folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop; folderBrowserDialog.ShowNewFolderButton = true; if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { e.VlcLibDirectory = new DirectoryInfo(folderBrowserDialog.SelectedPath); } } }
4.播放视频
使用VlcControl.Play()方法播放视频
vlcControl1.Play("http://**************/******.flv");//只能播放网络流视频
vlcControl1.SetMedia(new System.IO.FileInfo(@"f:\1.flv"));//本地视频 vlcControl1.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?