C# LibVLCSharp 播放器直接馈送媒体
C# LibVLCSharp player direct feed media
有一个 C# 应用程序通过 NuGet 包使用 LibVLC。
这些是软件包:
- https://www.nuget.org/packages/LibVLCSharp.WinForms
- https://www.nuget.org/packages/VideoLAN.LibVLC.Windows
使用这些包,可以很容易地将一些媒体播放器放入您的 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();
有一个 C# 应用程序通过 NuGet 包使用 LibVLC。
这些是软件包:
- https://www.nuget.org/packages/LibVLCSharp.WinForms
- https://www.nuget.org/packages/VideoLAN.LibVLC.Windows
使用这些包,可以很容易地将一些媒体播放器放入您的 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();