没有合适的资源?快使用搜索试试~ 我知道了~
首页C# 使用WPF 用MediaElement控件实现视频循环播放
C# 使用WPF 用MediaElement控件实现视频循环播放
20 下载量 135 浏览量
更新于2023-03-16
评论 2
收藏 47KB PDF 举报
在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。这篇文章给大家介绍了C# 使用WPF 用MediaElement控件实现视频循环播放,需要的朋友参考下吧
资源详情
资源评论
资源推荐
C# 使用使用WPF 用用MediaElement控件实现视频循环播放控件实现视频循环播放
在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。这篇文章给大
家介绍了C# 使用WPF 用MediaElement控件实现视频循环播放,需要的朋友参考下吧
在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。
一种方式,使用MediaElement.MediaEnded事件,在视频播放结束后,自动重新播放;
另一种方式,使用WPF定时器,在定时器事件里写入视频播放代码。
后者优点是可以控制循环时长,不必等到视频播放结束就可以开始下一次播放,比如:同时启动多个播放程序,使多个时长不同的视频
同时播放,无限循环,如果采用第一种方式,累计多次自动播放后,视频内容就无法同步。
第一种方式:
XAML:
<MediaElement x:Name="mediaElement" HorizontalAlignment="Left" Height="261" VerticalAlignment="Top" Width="507"/>
<Button x:Name="btnPlay" Content="Play" HorizontalAlignment="Left" Margin="68,279,0,0" VerticalAlignment="Top" Width="75" Click="btnPlay_Click"/>
<Button x:Name="btnPause" Content="Pause" HorizontalAlignment="Left" Margin="170,279,0,0" VerticalAlignment="Top" Width="75" Click="btnPause_Click"/>
<Button x:Name="btnStop" Content="Stop" HorizontalAlignment="Left" Margin="295,279,0,0" VerticalAlignment="Top" Width="75" Click="btnStop_Click"/>
C#:
// 窗口加载事件
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 绑定视频文件
mediaElement.Source = new Uri("D:/bird.mp4");
// 交互式控制
mediaElement.LoadedBehavior = MediaState.Manual;
// 添加元素加载完成事件 -- 自动开始播放
mediaElement.Loaded += new RoutedEventHandler(media_Loaded);
// 添加媒体播放结束事件 -- 重新播放
mediaElement.MediaEnded += new RoutedEventHandler(media_MediaEnded);
// 添加元素卸载完成事件 -- 停止播放
mediaElement.Unloaded += new RoutedEventHandler(media_Unloaded);
}
/*
元素事件
*/
private void media_Loaded(object sender, RoutedEventArgs e)
{
(sender as MediaElement).Play();
}
private void media_MediaEnded(object sender, RoutedEventArgs e)
{
// MediaElement需要先停止播放才能再开始播放,
// 否则会停在最后一帧不动
(sender as MediaElement).Stop();
(sender as MediaElement).Play();
}
private void media_Unloaded(object sender, RoutedEventArgs e)
{
(sender as MediaElement).Stop();
}
/*
播放控制按钮的点击事件
*/
private void btnPlay_Click(object sender, RoutedEventArgs e)
{
mediaElement.Play();
}
private void btnPause_Click(object sender, RoutedEventArgs e)
{
mediaElement.Pause();
}
private void btnStop_Click(object sender, RoutedEventArgs e)
{
mediaElement.Stop();
}
第二种方式:
注:使用DispatcherTimer,需要添加System.Windows.Threading命名空间。
XAML:
<MediaElement x:Name="mediaElement" HorizontalAlignment="Left" Height="243" Margin="19,10,0,0" VerticalAlignment="Top" Width="394" LoadedBehavior ="Manual"/>
<Button x:Name="btnPlay" Content="Play" HorizontalAlignment="Left" Margin="52,270,0,0" VerticalAlignment="Top" Width="75" Click="btnPlay_Click"/>
<Button x:Name="btnPause" Content="Pause" HorizontalAlignment="Left" Margin="163,270,0,0" VerticalAlignment="Top" Width="75" Click="btnPause_Click"/>
<Button x:Name="btnStop" Content="Stop" HorizontalAlignment="Left" Margin="266,270,0,0" VerticalAlignment="Top" Width="75" Click="btnStop_Click"/>
C#:
DispatcherTimer timer = new DispatcherTimer(); // 定时器timer
int durTime = 5; // 视频播放时长,也就是循环周期
// 窗口加载事件
private void Window_Loaded(object sender, RoutedEventArgs e)
{
mediaElement.Source = new Uri("D:/bird.mp4"); // 绑定视频文件
weixin_38638309
- 粉丝: 2
- 资源: 943
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0