Как использовать API VLC.DotNet.Core на Raspberry Pi - PullRequest
1 голос
/ 12 апреля 2019

Я создал консольное приложение 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 или я на безнадежном пути?

1 Ответ

1 голос
/ 18 апреля 2019

Я не знаю, можно ли заставить 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

Удачи.

...