Я создал консольное приложение C #, которое компилируется с mono (mcs
), и я могу запустить его как на Windows, так и на Raspberry Pi (raspbian). Приложение использует пакет NuGet Vlc.DotNet.Core
для взаимодействия с установкой VLC, которая существует на моем компьютере с Windows, и это работает.
Я знаю путь к libvlc.dll
(который необходим API для работы) на моей машине с Windows, проблема в том, что я не могу найти его на Raspberry Pi даже после установки там VLC с apt-get install vlc
.
Я искал в Pi местоположение vlc и ввел этот путь в конструктор VlcMediaPlayer
следующим образом;
new VlcMediaPlayer(new DirectoryInfo("/usr/lib/arm-linux-gnueabihf/vlc"));
У меня очень мало уверенности в том, что я использовал правильный путь ... Очевидно, что между установкой VLC для Windows и установкой Raspbian есть существенные различия.
Результирующее исключение на Пи гласит:
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
EDIT:
Я нашел исходные файлы для класса VlcLibraryLoader (как видно из исключения) здесь , и, очевидно, он ищет три библиотеки DLL, только две из которых существуют в Windows, поэтому я предполагаю, что связанные исходные файлы немного устарели. Дело в том, что они ищут файлы .dll
, а не файлы .so
, которые существуют на Raspberry Pi, поэтому я не удивлен, что это не удается. Вопрос остается, однако ...
ВОПРОС:
- Использую ли я правильный пакет vlc
libvlc-dev
, есть ли другие зависимости, которые мне нужны?
- Известно ли, что
Vlc.DotNet.Core
API работает на Raspbian
с mono
или я на безнадежном пути?