C# WPF MediaElement 切换视频源后有几秒钟的黑屏

C# WPF MediaElement 切换视频源后有几秒钟的黑屏

之前百度和bing搜索后 没有找到相关有用的资料,这个是微软的一个bug

经过网上的资料发现,有些是写两个MediaElement然后交替播放,有些是使用通过设置透明度来控制,但是感觉都不是太好,后来在堆栈溢出发现了一个问题回答后,有了一点启发

使用MidiaPlayer来实现,放弃使用MediaElement

CS文件中定义

 private  MediaPlayer player = new MediaPlayer();

player.Open(new Uri(“C:\\1.avi”));

     VideoDrawing drawing = new VideoDrawing { Rect = new Rect(0, 0, 1920, 1080), Player = player };
            player.Play();
            DrawingBrush brush = new DrawingBrush(drawing);
            player.MediaEnded += Player_MediaEnded;  //End事件可以自己实现后 继续开始新的视频播放(可以实现循环播放或者单个播放)
            _gridPlayer.Background = brush;

 

//停止  player.Stop()

//暂停 player.Pause();

xaml中定义

<Grid   Width="1920" Height="1080" Margin="0,10,0,0" Name="_gridPlayer">

目前在 Player_MediaEnded事件后继续循环播放视频良好,也不会闪屏

备注:自己写测试程序的时候有时候播放到某一个视频的时候,程序闪退了,推测是解码器的问题

目前遗留的问题:如果是图片和视频循环播放,播放到图片的时候,把path重新设置为当前图片的path后 不会执行 Player_MediaEnded事件,视频没有这个问题

等后面找到合适的方案后再补充此遗留问题

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值