Я хочу играть в потоковое HTTPS с VLC - PullRequest
0 голосов
/ 02 июля 2019

Я хочу воспроизвести потоковую передачу https с помощью vlc.В следующем коде работает в winForm, но я хочу, чтобы он преобразовал его в wpf.Итак, проблема в том, как мы можем связать VlcControl с оконным или пользовательским элементом управления.Я пытался с WindowFormHost, но он не работал.

public Vlc.DotNet.Forms.VlcControl VLC;
public void StartStream_Click(object s, EventArgs ev)
{
    if (VLC.IsPlaying)
    {
        return;
    }
    VLC = new VlcControl();
    VLC.VlcLibDirectory = new DirectoryInfo(@""+Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
    Task.Factory.StartNew(() =>
    {
        // Using ACS API to get live streaming
        PlayingCameras = new ObservableCollection<VlcControl>();
        foreach (var cam in selectedServer.Cameras)
        {
            Uri streamUrl = new Uri(
                "https://"
                + selectedServer.Server.UserName + ":"
                + selectedServer.Server +
                "@"
                + selectedServer.Server.IPAddress +
                // camera=3576 is just an example it should be replaced with your cameraId 
                // quality is jsu an example it should be replaced
                "/Acs/Streaming/Video/Live/Mp4/?camera=" + cam.CameraId.Split('#')[0] + "&quality=high&audio=0");

            VLC.SetMedia(streamUrl);

            VLC.EncounteredError += (sender, e) =>
            {
                LogHelper.WriteException(e.ToString(), source: "Quanika");
                VLC.Stop();
            };

            VLC.Play();

            PlayingCameras.Add(VLC);



            RaisePropertyChanged("VLC");
        }
    });


}

Нет проблем в коде.Я не знаю, как я могу показать потоковую передачу в xml. У меня тот же код, который я опубликовал, но он реализован в winform, и я хочу, чтобы он конвертировался в WPF.

<Grid>
    <!--<WindowsFormsHost x:Name="VLCWindow"/>-->

        <Grid.Background>
            <VisualBrush Stretch="Uniform">
                <VisualBrush.Visual>
                    <Image Source="{Binding VLC, UpdateSourceTrigger=PropertyChanged}" />

                </VisualBrush.Visual>
            </VisualBrush >
        </Grid.Background>


    </Grid>
...