admin 管理员组 文章数量: 1184232
文章数量: 1184232
WPF 4 媒体播放器(MediaElement)
在WPF 中可以使用MediaElement 为应用程序添加媒体播放控件,以完成播放音频、视频功能。由于MediaElement 属于UIElement,所以它同时也支持鼠标及键盘的操作。本篇将使用MediaElement 类和Windows API Code Pack 创建一个简单的视频播放器实现一些基本功能。
界面框架
在XAML 中放入一个MediaElement 控件(支持视频播放),五个Button 控件(分别用于“打开视频文档”、“播放/暂停”、“停止”、“快退”、“快进”),一个Slider 控件(控制音量)。
Volume="0.5" LoadedBehavior="Manual" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> Style="{StaticResource btnStyle}" Click="openBtn_Click"/> Style="{StaticResource btnStyle}" Click="playBtn_Click"/> Style="{StaticResource btnStyle}" Click="stopBtn_Click"/> Style="{StaticResource btnStyle}" Click="backBtn_Click"/> Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Volume="0.5" LoadedBehavior="Manual"
MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/>
Style="{StaticResource btnStyle}" Click="openBtn_Click"/> Style="{StaticResource btnStyle}" Click="playBtn_Click"/> Style="{StaticResource btnStyle}" Click="stopBtn_Click"/> Style="{StaticResource btnStyle}" Click="backBtn_Click"/> Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Style="{StaticResource btnStyle}" Click="openBtn_Click"/>
Style="{StaticResource btnStyle}" Click="playBtn_Click"/> Style="{StaticResource btnStyle}" Click="stopBtn_Click"/> Style="{StaticResource btnStyle}" Click="backBtn_Click"/> Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Style="{StaticResource btnStyle}" Click="playBtn_Click"/>
Style="{StaticResource btnStyle}" Click="stopBtn_Click"/> Style="{StaticResource btnStyle}" Click="backBtn_Click"/> Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Style="{StaticResource btnStyle}" Click="stopBtn_Click"/>
Style="{StaticResource btnStyle}" Click="backBtn_Click"/> Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Style="{StaticResource btnStyle}" Click="backBtn_Click"/>
Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/> 注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。 界面样式 上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。 浏览视频文件 在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。 private void openBtn_Click(object sender, RoutedEventArgs e) { ShellContainer selectedFolder = null; selectedFolder = Videos as ShellContainer; CommonOpenFileDialog cfd = new CommonOpenFileDialog(); lDirectoryShellContainer = selectedFolder; ReadOnly = true; (new CommonFileDialogFilter("WMV Files", "*.wmv")); (new CommonFileDialogFilter("AVI Files", "*.avi")); (new CommonFileDialogFilter("MP3 Files", "*.mp3")); if (alog() == ) { = new Uri(me, ve); led = true; } } 播放/暂停 在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。 private void PlayerPause() { SetPlayer(true); if (ng() == "Play") { (); t = "Pause"; p = "Click to Pause"; } else { (); t = "Play"; p = "Click to Play"; } } private void playBtn_Click(object sender, RoutedEventArgs e) { PlayerPause(); } private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { PlayerPause(); } 快退/快进 通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。 private void backBtn_Click(object sender, RoutedEventArgs e) { on = on - conds(10); } private void forwardBtn_Click(object sender, RoutedEventArgs e) { on = on + conds(10); } 音量调节部分只需将Slider Value 变化值与MediaElement Volume 值做一个简单Binding 即可。 ...... Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Style="{StaticResource btnStyle}" Click="forwardBtn_Click"/>
注意,MediaElement 的LoadedBehavior 需要设置为Manual,这样才可以手动控制视频的播放状态。
界面样式
上面代码中已经为部分控件设置了一些简单样式,其中Button 控件通过静态资源btnStyle 进行了较为复杂的样式设定。首先修改了Button 的默认样式,并且在鼠标移至上方时字体颜色也会产生变化。
浏览视频文件
在视频文件浏览部分引入Windows API Code Pack,使用KnownFolders 类将文件浏览窗口直接定位到媒体库的Sample Videos 目录,并添加WMV、AVI 文件过滤器。
private void openBtn_Click(object sender, RoutedEventArgs e)
{
ShellContainer selectedFolder = null;
selectedFolder = Videos as ShellContainer;
CommonOpenFileDialog cfd = new CommonOpenFileDialog();
lDirectoryShellContainer = selectedFolder;
ReadOnly = true;
(new CommonFileDialogFilter("WMV Files", "*.wmv"));
(new CommonFileDialogFilter("AVI Files", "*.avi"));
(new CommonFileDialogFilter("MP3 Files", "*.mp3"));
if (alog() == )
= new Uri(me, ve);
led = true;
}
播放/暂停
在视频播放过程中可以通过点击“Play/Pause” 按键或“MediaElement” 窗口,对视频进行“播放/暂停”操作。
private void PlayerPause()
SetPlayer(true);
if (ng() == "Play")
();
t = "Pause";
p = "Click to Pause";
else
t = "Play";
p = "Click to Play";
private void playBtn_Click(object sender, RoutedEventArgs e)
PlayerPause();
private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
快退/快进
通过修改MediaElement 的Position 值实现视频进度调整操作。时间间隔通过TimeSpan 进行设置(下面代码以10秒为间隔)。
private void backBtn_Click(object sender, RoutedEventArgs e)
on = on - conds(10);
private void forwardBtn_Click(object sender, RoutedEventArgs e)
on = on + conds(10);
音量调节部分只需将Slider
Value
变化值与MediaElement
Volume 值做一个简单Binding 即可。
......
Volume="{Binding ElementName=volumeSlider, Path=Value}" MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"/> ...... 效果图
Volume="{Binding ElementName=volumeSlider, Path=Value}"
效果图
本文标签: 视频 播放 控件
版权声明:本文标题:简易WPF媒体播放器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709954351a551051.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
【教程】佳能5d3 mov视频恢复 winhex脚本恢复MOV视频 数据恢复 佳能数据恢复 *************************************************************************
1.西瓜播放器官网http:h5player.bytedanceguide2.安装# 最新稳定版$ npm install xgplayer对于已有项目也可以通过 CDN 引入,代码如下ÿ
在网上翻找一波后,决定采用安装Shark007Codecs的方式,不用额外安装别的播放器,让系统自带的播放器升级成全能格式播放器 参考链接:Shark
EPUB是一种流行的电子书格式,用于可重排内容,而PDF则广泛用于固定版式文档,非常适合共享和打印。如果您想使用 Python 将 EPUB 转换为 PDFÿ
出于安全考虑新生成的 Microsoft Office阻止激活的Silverlight控件,大多数用户都不会受到影响,但某些用户这可能导致在 Excel 中的 power View 不再起作用 &
下载链接:https:pan.quarkscf5830bfa724HandBrake是什么?HandBrake是一款专业、免费且跨平台的视频转码工具,我个人使用过很多
很多人都喜欢腾讯视频追剧,他们为了免广告都会购买腾讯视频会员,一般情况都是自动续费的,那怎么取消腾讯视频自动续费呢?下面将会为大家介绍。怎么取消腾讯视频
作者丨gongyouliu来源 | 转载自大数据与人工智能(ID:ai-big-data)【导语】:作者在上一篇文章《基于内容的推荐算法》中介绍了基于内容的推荐算法的实现原理
java-springboot短视频推荐系统c48cyo7e计算机毕业设计(配套有源码 程序 mysql数据库 论文)本套源码可以在文本联xi,先看具体系统功能演示视频领取,
实时监控面板 简单的核查工作流程 多摄像头可按时间轴查看 内置遮罩和区域编辑器 简介 Frigate NVR是一个开源的网络视频录像系统,专为IP摄像头设计,集成了实时本地物体检测功能。该项目由
那个令人崩溃的夜晚 我记得特别清楚,那天晚上我好不容易盼来了期待已久的大片更新,泡好咖啡,舒舒服服瘫在椅子上。结果呢?片头刚过,主角的脸就卡成了毕加索的画作,声音断断续续,画面一顿一顿。我气得差点把鼠标摔了!这已经不是第一次了,每次到了
前言 Flash 官方早在 2021 年就结束了对 Flash Player 的支持。尽管国内有 Flash 中心继续对 Flash 提供支持,不过也主要用于浏览含有 Flash 插件的网页。虽然 Flash 中心也有播放 S
大多数用户发现在访问某些需要填写验证码的地方,都无法显示验证码图片。解决办法有:方法 1、原因是你的阻挡了所有网站COOKIES,导致对方无法读取你的COOKIES,所以无法显示验证码图框。另外有些网站的验证码采用FLA
1、一般情况下,浏览器会自动加载控件,从浏览器上方可以看到提示,如下图: 2、这时候,单击控件栏,选择“安装ActiveX控件”,正常情况下,可以成功安装控件。如果因为“windows已经阻止此软件因为无法验证发行者”而不能安
案例:我的电脑播放不了视频,这是什么原因。如何才能在电脑上播放视频?有没有解决的办法?【我工作和学习都离不开电脑,今天工作的时候,我用电脑打开一个视频,却发现视频无法播放,怎样才能解决这个问题?】 随着互联网的发
我们是用Webview加载了网上的视频,在手机上播放。比如优酷网,土豆网。爱奇艺等。但是突然发现一旦播放美拍网的视频就无法播放。显示如下图: 我的代码如下: public class MainActivity
删除桌面上的“回收站”图标 1 开始---运行---gpedit.msc2 用户配置---管理模板---桌面---双击“从桌面删除‘回收站’”---选择“已启用”3 刷新桌面 关闭自
在日常生活中,我们常常遇到视频的编辑问题,这篇文章来教你用最简单的方法来合并vob格式的视频。 工具: 电脑,winrar压缩工具。 材料:几个准备合并的vob格式视频文件过程:
发表评论