weixin_43907340 2024-10-07 23:13 采纳率: 42.9%
浏览 25

c#libvlcsharp.wpf设置背景色

c#wpf应用中
XAML布局grid中两列,左边是listbox,右边是libvlcsharp.wpf库存中的videoview,已经设置videoview背景色黑色;videoview中一工具栏,用来控制视频播放、结束等操作;

        public MainWindow()
        {
            InitializeComponent();
            //初始化视图模型,与listbox绑定;
            listBox.Width = 200;
            var background = listBox.Background;
            _viewModel = new ChannelViewModel();
            DataContext = _viewModel;
            ///初始化libvlcsharp
            _libVLC = new LibVLC();
            _mediaPlayer = new MediaPlayer(_libVLC);
            videoView.MediaPlayer = _mediaPlayer;
            _mediaPlayer.MediaChanged += (sender, e) => { videoView.Background = background; };
            Loaded += (sender, e) => { videoView.Background = background; };
        }

先初始化libvlc,mediaplay;
再将datacontent = 视图模型,绑定到listbox;
打开窗体后,能看到窗体中videoview闪一下黑色,然后就变成白色了。
1、测试了很长时间,不管videoview设置什么颜色,打开窗体后都是白色。
2、在初始化加入窗体Loaded事件,然后设置videoview背景色也没有用;

不知道问题出在哪里?

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-10-07 23:14
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    看起来您在尝试使用LibVLCSharp在WPF应用中播放视频时遇到了背景色的问题。当视频播放区域显示为白色而非您设定的黑色背景时,可能有多种原因引起这种情况。以下是您可以尝试的解决步骤和考虑因素:

    1. 确保在设置VideoView背景色前完全加载视频媒体流:您提到了在窗体加载事件中设置背景色,但如果在视频媒体流完全加载之前尝试设置背景色,可能会导致背景色被视频内容覆盖。确保在视频开始播放后再设置背景色。您可以尝试在媒体播放器加载视频后的某个事件中更改背景色。

    2. 使用样式(Style)设置背景色:确保您是在样式(Style)中设置VideoView的背景色,而不是直接在控件上设置。在样式中设置的属性会覆盖控件本身的属性。尝试在XAML中为VideoView定义一个样式并设置背景色。

    例如:

    <Style TargetType="yourVideoViewNamespace:VideoView">
        <Setter Property="Background">
            <Setter.Value>
                <SolidColorBrush Color="Black"></SolidColorBrush>
            </Setter.Value>
        </Setter>
    </Style>
    

    请确保替换yourVideoViewNamespace为实际的命名空间。

    1. 检查视频流的属性:有时候视频本身的属性(如颜色配置)可能会影响显示的颜色。尝试播放不同来源的视频,看看是否仍然出现白色背景的问题。如果其他视频显示正常,那可能是特定视频文件导致的。

    2. 使用MediaEnded事件检查视频结束后的颜色:有时候问题可能出现在视频播放结束后。确保视频播放结束时背景颜色不会被自动更改(例如由程序逻辑或其他绑定操作)。您可以在视频播放结束的事件中捕获背景色的变化。

    如果这些步骤都无法解决问题,那么可能需要进一步查看LibVLCSharp的具体实现细节或与LibVLCSharp的开发者社区交流,看看是否有特定的已知问题或解决方案。此外,确认您的LibVLCSharp版本是最新的也可能有助于解决问题。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月7日
  • 创建了问题 10月7日