最近,在试图决定让VLC播放器进入C#的最佳方式时,偶然发现了这篇文章。
Does VLC media player have a C# interface?
我下载了dll文件并将它们导入到我的项目中,但随后意识到我并不知道如何使用它们。有没有这段代码的Windows窗体示例?尝试过的代码如下所示-
Vlc.DotNet.Core.Medias.MediaBase media = new
Vlc.DotNet.Core.Medias.PathMedia(@"C:\Users\...\SampleVideos\Wildlife.wmv");
Vlc.DotNet.Forms.VlcControl vlcControl1 = new Vlc.DotNet.Forms.VlcControl();
vlcControl1.Play(media);我还在我的项目的主program.cs中使用此链接中的代码。
http://vlcdotnet.codeplex.com/wikipage?title=Forms
我目前遇到的问题是,在启动项目时,当它到达->时会抛出一个NullReferenceException
vlcControl1.Play(media)问题似乎出在vlcControl上,但我不确定原因。文档似乎相当单薄,而且我在codeplex站点上找不到任何可用的示例。如果谁有一个工作表单的例子,或者知道我可能错过了什么,请让我知道!
下面是错误发生时出现的调用堆栈->
RTSPViewer_Test.exe!RTSPViewer_Test.Form1.Form1_Load(object sender,
System.EventArgs e) Line 31 + 0xd bytes C#
RTSPViewer_Test.exe!RTSPViewer_Test.Program.Main() Line 30 + 0x1d bytes C#调试时,VLC控件的Media和Medias属性似乎都为空。当尝试将控件的Media设置为在
NullReferenceException检查VLC控件对象媒体确实等于null,但我不确定为什么它没有正确初始化。
发布于 2012-04-30 23:07:30
我无法使用最新版本的Vlc.dotnet库来运行程序,而是使用由Raj发布的Alpha2版本。我在这个库中使用了VLC版本1.1.5,以使基本示例能够正常运行。我的最终目标是从rtsp设备流传输,但是这个库似乎还不支持这个功能。
对于任何想要使用好的C#包装器来使用VLC的人来说,这是一个很好的例子-
http://www.codeproject.com/Articles/109639/nVLC
在这个项目中使用了VLC 1.1.1中的库文件,并且运行良好。支持几乎所有你通常会在VLC中使用的功能,但让你可以更好地控制它们的用途。
使用这些DLL包装时出现的许多问题都是由于源DLL文件的版本不正确引起的。VLC库目前只有32位,因此您需要确保使用x86模式进行编译,否则libvlc.dll将无法正确加载,应用程序将崩溃。使用上面的示例,您还必须确保libvlc.dll、libvlccore.dll和插件文件夹包含在build文件夹中。
https://stackoverflow.com/questions/10354985
复制相似问题