编程语言
首页 > 编程语言> > C# WPF MediaElement 切换视频源后有几秒钟的黑屏

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事件,视频没有这个问题

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

 

标签:视频,C#,MediaEnded,player,MediaElement,new,播放,黑屏
来源: https://blog.csdn.net/immotal_xiaoqiang/article/details/116190287