具有VLC的流图像或桌面屏幕(用于WPF的LibVLCSharp)

问题描述 投票:0回答:1

您能指导我如何连续播放屏幕吗?

我使用库:NuGet上的LibVLCSharp,LibVLCSharp.WPF,VideoLAN.LibVLC.Windows

我不知道如何连续更新流,并且第二个videoView无法显示屏幕图像

这是我的代码,但是不起作用。

             Core.Initialize();                // instantiate the main libvlc object
            _libvlc = new LibVLC();

            // Stream screen
            var mediaPlayer = new MediaPlayer(_libvlc);
            vv.MediaPlayer = mediaPlayer;
            string[] options = { ":sout=#duplicate{dst=display{noaudio},dst=rtp{mux=ts,dst=10.0.100.114,port=8080,sdp=rtsp://10.0.100.114:8080/screen.sdp}" };
            var stream = new MemoryStream();
            var media = new Media(_libvlc, stream, options);
            mediaPlayer.Play(media);

            await Task.Run(() =>
            {
                while (true)
                {
                    vv.Dispatcher.Invoke(() =>
                   {
                       // HOW CAN I UPDATE THE STREAM ????
                       //stream.Dispose();
                       //stream.Close();
                       //var bytes = CaptureScreen();
                       //stream = new MemoryStream(bytes);

                       //media = new Media(_libvlc, stream, options);
                       //mediaPlayer.Media.Dispose();
                       //mediaPlayer.Media = media;
                       //mediaPlayer.Play();
                   });

                    Thread.Sleep(100);
                }
            });


            // Display from stream
            vv1.MediaPlayer = new MediaPlayer(_libvlc);
            var media = new Media(_libvlc, "rtsp://10.0.100.114/screen.sdp", FromType.FromLocation);
            vv1.MediaPlayer.Play(media);

谢谢。

P / S:我的第一篇文章在这里:https://forum.videolan.org/viewtopic.php?f=4&t=152462

c# wpf vlc libvlcsharp
1个回答
0
投票

可以使用VLC API在C#中完成屏幕录制。我创建了一个示例程序来演示这一点。

请在此处查看我的Stackoverflow答案:https://stackoverflow.com/a/60386481/4082441

© www.soinside.com 2019 - 2024. All rights reserved.