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

C#LibVLCSharp播放器直接馈送媒体,c#,vlc,libvlc,libvlcsharp,C#,Vlc,Libvlc,Libvlcsharp,有一个C#应用程序通过NuGet包使用LibVLC 这些是软件包: 有了这些包,将一些MediaPlayer放入WinForms应用程序非常容易 您只需初始化一个播放机,并为其提供一个新的媒体: LibVLCSharp.Shared.LibVLC libVLC = new LibVLC(); LibVLCSharp.WinForms.VideoView videoView; videoView.MediaPlayer = new LibVLCSharp.Shared.MediaPlay

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

这些是软件包:

有了这些包,将一些MediaPlayer放入WinForms应用程序非常容易

您只需初始化一个播放机,并为其提供一个新的
媒体

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));
现在,我想从缓冲区向mediaplayer提供自定义数据。 它可以是字节数组,或者任何类似的东西。(数据应视为来自有效的mp4文件块)


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

使用此媒体构造函数

new Media(libVLC, new StreamMediaInput(stream));
可以通过任何.NET流进行传输


此示例使用torrent流,例如:

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

然后,用法与@mfkl指出的相同。不过要小心,必须处理MediaInput

this.\u mediaInput=new MyMediaInput();
播放(新媒体(libVLC,this.u mediaInput));
//最后
此._mediaInput.Dispose();

Wow,这可能是非常新的,我甚至不得不更新nuget软件包以使MediaInput类可用。谢谢,这是新的,我添加这个是因为我想添加更多的场景,而不仅仅是一个普通的流。享受吧!与StreamMediaInput和\u mediaInput有什么区别?StreamMediaInput是LVS提供的一个具体类。MediaInput是一个抽象类,您可以实现它来定义自己的流机制