问题描述
我有一个使用 LibVLC VideoView 的 C# 应用程序。 我试图在我的应用程序中以小预览形式播放视频,并在外部显示器上以全屏形式播放。
到目前为止,我正在使用以下解决方案: 创建 MediaPlayer 对象时,我使用命令行选项“--clone-count”、“--video-x”和“--video-y”。 这会创建一个单独的窗口(“Direct3d 输出”),它位于辅助监视器上。 但是,我无法将此“直接 3D 输出”切换到全屏,因此它没有窗口边框并且 Windows 任务栏不可见。 有没有办法做到这一点?或者是否有其他合理的解决方案可以将视频从 VideoPlayer-Control 克隆到全屏显示的单独显示器?
我的代码:
string[] vlcParameter = new string[]
{
@"--video-splitter=clone",@"--clone-count=2",@"--video-x=" + secondaryMonitor.WorkingArea.Left,@"--video-y=" + secondaryMonitor.WorkingArea.Top,@"--video-on-top"
};
vlc = new LibVLC(true,vlcParameter);
解决方法
没有办法做到这一点。使用 libvlc 3,1 个媒体播放器 = 1 个视频视图,我认为他们没有计划改变这一点。
您可以创建两个视频播放器,但它们可能有点不同步。
,我找到了一个带有以下命令行参数的伪全屏克隆解决方案:
@"--video-splitter=clone",@"--clone-count=2",@"--video-x=" + x,@"--video-y=" + y,@"--no-video-deco",@"--no-embedded-video",
只要视频具有与显示器相同的分辨率,此方法就有效。 是否有确定“Direct3D 输出”窗口大小的命令行参数。 --Width 和 --Height 参数不起作用。