Vlc.DotNet WPF视频背景问题

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

有我的代码。我看到右上角的视频,控件本身位于此处,但主网格背景为空。它应该通过VisualBrush拍摄视频,对吗?我用谷歌搜索了几个样本,他们都使用相同的技巧,但它不起作用......

我还尝试在控件之上放置一些控件,但没有任何显示,因为我认为它在内部使用WinForms控件,这是最顶级的。

那么如何将此视频作为背景?

<Grid>
    <vlc:VlcControl  x:Name="myVlcControl" Width="100" Height="100" HorizontalAlignment="Right" VerticalAlignment="Top" />
    <Grid>
    <Grid.Background>
        <VisualBrush Stretch="Uniform">
            <VisualBrush.Visual>
                <Image Source="{Binding VideoSource, ElementName=myVlcControl}" />
            </VisualBrush.Visual>
        </VisualBrush >
    </Grid.Background>
</Grid>
wpf video vlc
2个回答
0
投票

MediaElement支持RTSP很好,但它可能不支持您尝试使用的编码/容器。下面生成一个有效的流媒体元素,并使用VisualBrush使用MediaElement绘制网格的背景:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <MediaElement x:Name="MyPlayer"
                Width="640"
                Height="480"
                LoadedBehavior="Play"
                Source="rtsp://granton.ucs.ed.ac.uk/domsdemo/v2003-1.wmv" />

    <Grid Grid.Row="1"
        Width="320"
        Height="240">
        <Grid.Background>
            <VisualBrush Stretch="Uniform" Visual="{Binding ElementName=MyPlayer}" />
        </Grid.Background>
    </Grid>
</Grid>

0
投票

@Kolorowezworki让Airhack control解决了这个问题。

例:

   <airhack:AirControl DataContext="{Binding}">
           <airhack:AirControl.Front>
                 <Image Source="{Binding VideoSource, ElementName=myVlcControl}" />
           </airhack:AirControl.Front>
           <airhack:AirControl.Back>
                 <vlc:VlcControl  x:Name="myVlcControl" Width="100" Height="100" HorizontalAlignment="Right" VerticalAlignment="Top" />
           </airhack:AirControl.Back>
   </airhack:AirControl>

注意:默认情况下,AirControl不支持DataContext Binding,通过传递'airhack'窗口解决此问题的fork或copy存储库并实现DataContext支持。

例:

 public AirControl()
 {
       InitializeComponent();
       alpha = new Alpha(this);
       alpha.DataContext = DataContext;
       DataContextChanged += (sender, args) => alpha.DataContext = DataContext;
 }
© www.soinside.com 2019 - 2024. All rights reserved.