C# LibVLCSharp 播放器直接馈送媒体

C# LibVLCSharp player direct feed media

有一个 C# 应用程序通过 NuGet 包使用 LibVLC。

这些是软件包:

使用这些包,可以很容易地将一些媒体播放器放入您的 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 文件)。

如何使用 C# 中的 libVLC 实现这一点?

使用这个媒体构造函数

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

stream 可以通过任何 .NET Stream。

此示例带有一个 torrent 流,例如:https://github.com/mfkl/lvst/blob/master/LVST/Program.cs

如果您不想在不需要的地方创建 Stream,您也可以实现自己的 MediaInput class,并实现所需的方法

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

那么,用法和@mfkl指出的一样。不过要小心,必须处理 MediaInput!

this._mediaInput = new MyMediaInput();

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

// At the end
this._mediaInput.Dispose();