首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vlc.DotNet WPF视频背景问题

Vlc.DotNet WPF视频背景问题
EN

Stack Overflow用户
提问于 2015-06-02 16:41:59
回答 2查看 720关注 0票数 1

这是我的代码。我在右上角看到了视频,控件本身所在的位置,但主网格背景是空的。它应该是通过VisualBrush拍摄视频的,对吧?我在谷歌上搜索了几个样本,它们都使用相同的技巧,但它不起作用……

我还尝试将一些控件放在控件的顶部,但没有显示出来,因为我假设它在内部使用WinForms控件,这是最顶部的控件。

那么我如何获得这段视频作为背景呢?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2015-06-08 19:42:16

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

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2019-03-06 23:04:42

@Kolorowezworki制作了Airhack control来解决这个问题。

示例:

代码语言:javascript
复制
   <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”窗口来实现DataContext支持。

示例:

代码语言:javascript
复制
 public AirControl()
 {
       InitializeComponent();
       alpha = new Alpha(this);
       alpha.DataContext = DataContext;
       DataContextChanged += (sender, args) => alpha.DataContext = DataContext;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30591265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档