1

我正在玩 libVLCSharp,我发现了一种有线行为。实际上,我可以毫无问题地创建媒体并使用 MediaPlayer 播放它。但是,当我尝试从 MediaList 创建一个媒体时,它会出现以下消息:

在本机端执行实例化失败。确保在平台特定项目中安装了正确的 VideoLAN.LibVLC.[YourPlatform] 包

我想要实现的是使用 ":sout=#gather" 管道进行视频合并。

我的代码非常基本:

Core.Initialize();

using (var libvlc = new LibVLC())
using (var mediaPlayer = new MediaPlayer(libvlc))
{
    Media media1 = new Media(libvlc, @"C:\Temp\SampleVideo.mp4");
    Media media2 = new Media(libvlc, @"C:\Temp\SampleVideo.mp4");
    MediaList list = new MediaList(libvlc);
    list.AddMedia(media1);
    list.AddMedia(media2);

    Media mediaList = new Media(list); <-- Error here

    ...
}

我的项目中使用了 2 个 nuget 包:

  • LibVLCSharp v3.0.2 6 月 12 日
  • VideoLAN.LibVLC.Windows v3.0.7 6月10日
4

1 回答 1

0

您想为此使用 SetMedia,而不是 AddMedia。

将媒体实例与此媒体列表实例相关联。

https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__media__list.html#ga96a38e5aabb5781c2f1932d332363eef

Core.Initialize();

using(var libVLC = new LibVLC())
{
    var media1 = new Media(libVLC, "https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4", FromType.FromLocation);
    var mediaList = new MediaList(libVLC);
    mediaList.SetMedia(media1);
    var media2 = new Media(mediaList);
}
于 2019-06-13T07:55:44.213 回答