所以我遇到了一个非常简单的问题,解决起来似乎并不容易。我发现 LibVLCSharp 用于从我的 C# 程序控制我的视频,这正是我想要的。但我发现文档非常复杂或不存在。
我想在一台 Windows 计算机上安装的 4 个显示器上播放最多 4 个不同的视频。我在这里有一个 2 台显示器的工作示例:
string[] vlcParameter1 = new string[]
{
@"--video-x=-1024",
@"--video-y=1",
@"--video-on-top",
@"--fullscreen",
@"--no-one-instance"
};
string[] vlcParameter2 = new string[]
{
@"--video-x=1",
@"--video-y=1",
@"--video-on-top",
@"--fullscreen",
@"--no-one-instance"
};
using var libvlc1 = new LibVLC(enableDebugLogs: true, vlcParameter1);
using var libvlc2 = new LibVLC(enableDebugLogs: true, vlcParameter2);
using var media1 = new Media(libvlc1, new Uri(@"C:\sample.mp4"));
using var media2 = new Media(libvlc1, new Uri(@"C:\sample.mp4"));
using var mediaplayer1 = new MediaPlayer(media1);
using var mediaplayer2 = new MediaPlayer(media2);
mediaplayer1.Fullscreen = false;
mediaplayer2.Fullscreen = false;
mediaplayer1.Play();
mediaplayer2.Play();
这非常简单,但 libvlcsharp github 页面的常见问题解答说永远不要实例化超过 一个 LibVLC 对象。我正在那里做的事。它工作正常,但我不知道有什么问题。
为了避免这种情况,我尝试像这样使用
Media.AddOption
:
media1.AddOption(":video-x=-1024");
media1.AddOption(":video-y=1");
但这也不起作用。 有没有另一种简单的方法可以在多个屏幕上显示多个视频?
LibVLC 实例可能在库的核心中具有共享状态,这些状态可能会影响您,具体取决于您的用例。不建议这样做,但如果一切对你来说都很好,那就坚持下去。
我会亲自处理视频观看位置,而不是使用
video-x
。