我正在使用 libvclsharp 包装器组合一个 winforms 应用程序。这是一个基本的应用程序,托管 4 个 VideoView 窗口并播放 4 个不同的 mp4 视频。
它运行正常,看起来很稳定,但是 lib 有一些奇怪的怪癖,我似乎无法找到答案
我需要单击表单上的一个按钮并将所有视频发送到特定时间,它们现在都是相同的长度
使用
_mediaPlayer1 = new MediaPlayer(_libVLC1);
_mediaPlayer2 = new MediaPlayer(_libVLC1);
_mediaPlayer3 = new MediaPlayer(_libVLC1);
_mediaPlayer4 = new MediaPlayer(_libVLC1);
media1 = new Media(_libVLC1, @"D:Video.mp4", FromType.FromPath);
media2 = new Media(_libVLC1, @"D:Video2.mp4", FromType.FromPath);
media3 = new Media(_libVLC1, @"D:Video3.mp4", FromType.FromPath);
media4 = new Media(_libVLC1, @"D:Video4.mp4", FromType.FromPath);
_mediaPlayer1.Media = media1;
_mediaPlayer2.Media = media2;
_mediaPlayer3.Media = media3;
_mediaPlayer4.Media = media4;
videoView1.MediaPlayer = _mediaPlayer1;
videoView2.MediaPlayer = _mediaPlayer2;
videoView3.MediaPlayer = _mediaPlayer3;
videoView4.MediaPlayer = _mediaPlayer4;
so to send all 4 to same time i use
foreach (var player in _PlayersCollection)
{
player.Time = 12000);
}
问题是当点击按钮时,如果视频正在播放,它会直接移动到新的时间位置。
如果视频被暂停,视频会像只移动一帧一样抽动,那么如果再次单击,它们会跳转到正确的时间位置。
这很烦人,我看不出原因。
我在网上看到一个提示,建议将 lib 的输出渲染器设置为 D3d9 而不是 D3d11,但我找不到任何关于如何为这个 lib 更改它的示例。
有没有人有任何建议请熟悉winforms上的lib。
谢谢