最近偶然发现了这篇文章,同时试图决定将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
我遇到的当前问题是,在启动项目时,它会在到达 - >
时抛出NullReferenceExceptionvlcControl1.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 and Medias属性显示为null。尝试将控件的媒体设置为
上方创建的媒体对象时NullReferenceException
检查VLC控件对象Media确实等于null,但我不确定为什么它没有正确初始化。
答案 0 :(得分:4)
我无法使用最新版本的Vlc.dotnet库让程序工作,而是使用Raj发布的alpha 2版本。我使用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和plugins文件夹包含在构建文件夹中。