3

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

这些是软件包:

使用这些包,很容易将一些媒体播放器放入您的 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 实现这一目标?

4

2 回答 2

4

使用此 Media 构造函数

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

stream可以通过任何 .NET 流。

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

于 2020-04-09T15:12:09.920 回答
2

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

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();
于 2020-04-09T15:30:46.437 回答