我做了一个C#控制台应用程序,它用单声道(mcs
)编译,我可以在Windows和Raspberry Pi(raspbian)上运行它。 该应用程序使用 NuGet 包Vlc.DotNet.Core
与我的 Windows 计算机上存在的 VLC 安装进行交互,这有效。
我知道在我的 Windows 机器上libvlc.dll
路径(API 需要它才能工作),问题是即使在 Raspberry Pi 上安装了 VLC 后,我也找不到它apt-get install vlc
.
我已经在 Pi 中搜索了 vlc 的位置,并将该路径输入到VlcMediaPlayer
的构造函数中,如下所示;
new VlcMediaPlayer(new DirectoryInfo("/usr/lib/arm-linux-gnueabihf/vlc"));
我对自己使用了正确的路径几乎没有信心...... 显然,VLC的Windows安装和Raspbian的安装之间存在重大差异。
Pi 上生成的异常如下:
Unhandled Exception:
System.IO.FileNotFoundException: Unable to find the specified file.
at Vlc.DotNet.Core.Interops.VlcLibraryLoader..ctor (System.IO.DirectoryInfo dynamicLinkLibrariesPath) [0x0007a] in <baf298be89ec4e8f88b59dde806086ea>:0
at Vlc.DotNet.Core.Interops.VlcLibraryLoader.GetOrCreateLoader (System.IO.DirectoryInfo dynamicLinkLibrariesPath) [0x00051] in <baf298be89ec4e8f88b59dde806086ea>:0
at Vlc.DotNet.Core.Interops.VlcManager..ctor (System.IO.DirectoryInfo dynamicLinkLibrariesPath, System.String[] args) [0x00006] in <baf298be89ec4e8f88b59dde806086ea>:0
at Vlc.DotNet.Core.VlcMediaPlayer..ctor (System.IO.DirectoryInfo vlcLibDirectory) [0x00000] in <9af967e78de14038abf8c3386a2b8049>:0
at MonoApp.Classes.VLCFactory.Create () [0x0000b] in <0b03f50fed2542db8a444bf356ef64b6>:0
at MonoApp.Classes.VLCCommands.VLCCommand_Play.Execute (Vlc.DotNet.Core.VlcMediaPlayer& mediaPlayer, System.String[] args) [0x00007] in <0b03f50fed2542db8a444bf356ef64b6>:0
at MonoApp.Program.Main (System.String[] args) [0x00019] in <0b03f50fed2542db8a444bf356ef64b6>:0
编辑:
我在这里找到了 VlcLibraryLoader 类的源文件(如异常所示),显然它正在寻找三个 dll,其中只有两个存在于 Windows 上,所以我猜测链接的源文件略微过时。 这里的重点是他们正在寻找.dll
文件,而不是 Raspberry Pi 上存在的.so
文件,所以我并不惊讶它失败了。 然而,问题仍然存在...
问题:
- 我是否使用了正确的 vlc 包
libvlc-dev
,我还需要其他依赖项吗? Vlc.DotNet.Core
API 是否已知可以与mono
一起处理Raspbian
,或者我是否走在一条绝望的道路上?
我不知道是否可以使Vlc.DotNet.Core在带有单声道的raspbian上工作。如您所知,它最初的目标是在Windows上运行。
LibVLCSharp可能会在raspbian上运行,因为它可以与ubuntu一起使用。
LibVLC/GTK linux 安装指南:https://code.videolan.org/videolan/LibVLCSharp/blob/master/docs/linux-setup.md
LibVLCSharp.GTK 样本:https://code.videolan.org/videolan/LibVLCSharp/tree/master/Samples/LibVLCSharp.GTK.Sample
祝你好运。