C# LibVLCSharp проигрыватель с прямой подачей носителя - PullRequest
0 голосов
/ 09 апреля 2020

Существует приложение C#, которое использует LibVL C через пакеты NuGet.

Это пакеты:

С помощью этих пакетов очень легко добавить некоторые медиаплееры в ваше приложение WinForms.

Все, что вам нужно сделать это инициализировать плеер и дать ему новый Media:

LibVLCSharp.Shared.LibVLC libVLC = new LibVLC();

LibVLCSharp.WinForms.VideoView videoView;
videoView.MediaPlayer = new LibVLCSharp.Shared.MediaPlayer(libVLC)

videoView.MediaPlayer.Play(new Media(libVLC, "URL", FromType.FromLocation));

Теперь я хочу загрузить медиаплеер моими пользовательскими данными из буфера. Это может быть байтовый массив или что-то подобное. (считается, что данные поступают из действительного фрагмента файла mp4).

Как этого добиться с помощью libVL C в C#?

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Если вы не хотите создавать поток там, где он не нужен, вы также можете реализовать свой собственный класс MediaInput и реализовать необходимые методы

https://code.videolan.org/videolan/LibVLCSharp/-/blob/master/src/LibVLCSharp/Shared/MediaInput.cs

Тогда использование будет таким же, как указано @mfkl. Будьте осторожны, MediaInput должен быть удален!

this._mediaInput = new MyMediaInput();

mediaPlayer.Play(new Media(libVLC, this._mediaInput));

// At the end
this._mediaInput.Dispose();
1 голос
/ 09 апреля 2020

Используйте этот медиа-конструктор

new Media(libVLC, new StreamMediaInput(stream));

stream может любым. NET Поток.

Этот пример с потоком потока, например: https://github.com/mfkl/lvst/blob/master/LVST/Program.cs

...