Я хочу воспроизвести потоковую передачу 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>