博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量
阅读量:4450 次
发布时间:2019-06-07

本文共 1814 字,大约阅读时间需要 6 分钟。

/* =================================================

  * Author:     Micro
  * Date:       2016=03-25            
  * Qq:         471812366@qq.com
  ================================================= */

一、播放窗口

二、选择文件

三、播放视频

四、开发技术要领

创建MediaElement媒体控件

MediaElement mediaElement = new MediaElement();

 

设置视频路径

mediaElement.Source = new Uri(视频路径, UriKind.Relative);

 

当不播放音频或视频时触发事件

mediaElement.MediaEnded += new RoutedEventHandler(mediaElement_MediaEnded);private void mediaElement_MediaEnded(object sender, RoutedEventArgs e){    mediaElement.Stop();}

 

当播放音频或视频或是存在播放文件时触发事件,一般用于获取总时长

mediaElement.MediaOpened += new RoutedEventHandler(mediaElement_MediaOpened);private void mediaElement_MediaOpened(object sender, RoutedEventArgs e){    duration = mediaElement.NaturalDuration.HasTimeSpan ? mediaElement.NaturalDuration.TimeSpan : TimeSpan.FromMilliseconds(0);}

 

视频总时长

duration = mediaElement.NaturalDuration.HasTimeSpan ? mediaElement.NaturalDuration.TimeSpan : TimeSpan.FromMilliseconds(0);

 

暂停

mediaElement.Pause();

 

停止

mediaElement.Stop();

 

静音

mediaElement.IsMuted = false;

 

有声

mediaElement.IsMuted = true;

 

设置后退播放10秒钟

mediaElement.Position = mediaElement.Position - TimeSpan.FromSeconds(10);

 

设置快进播放10秒钟

mediaElement.Position = mediaElement.Position + TimeSpan.FromSeconds(10);

 

设置跳转到指定秒数播放视频

mediaElement.Position = new TimeSpan((new DateTime(0, 0, 0, 0, 0, 0)).Ticks);mediaElement.Play();

 

获取当前视频的时间

string b = mediaElement.Position.ToString().Substring(0, 8);

 

当前转为计数器

string[] videotime = b.Split(':');int totime = int.Parse(videotime[0]) * 3600 + int.Parse(videotime[1]) * 60 + int.Parse(videotime[2]);text.Text = totime.ToString();

 

自定义计数器

text.Text = string.Format("{0}{1:00}:{2:00}:{3:00}", "播放进度:", mediaElement.Position.Hours, mediaElement.Position.Minutes, mediaElement.Position.Seconds);

 

转载于:https://www.cnblogs.com/sntetwt/p/5321658.html

你可能感兴趣的文章
maven 仓库地址:
查看>>
wangEditor - 轻量级web富文本编辑器(可带图片上传)
查看>>
人脸识别应用场景
查看>>
jQuery实现点击图标div循环放大缩小功能
查看>>
我是如何快速积累工作经验
查看>>
关于css命名的感受
查看>>
js json 特定条件删除 增加 遍历
查看>>
J.U.C并发框架源码阅读(十一)DelayQueue
查看>>
Jzoj4627 斐波那契数列
查看>>
nginx + php-fpm (也包括一部分apache/httpd)
查看>>
if 和 for 声明变量的作用域
查看>>
HTTP和HTTPS详解
查看>>
git pull 提示错误,Your local changes to the following files would be overwritten by merge
查看>>
【旧文章搬运】分析了一下360安全卫士的HOOK(二)——架构与实现
查看>>
wireshark抓包看RTT
查看>>
C语言基础知识
查看>>
Android 6.0 权限管理
查看>>
ssl2290-潜水员【dp之二维费用】
查看>>
[Mockito] Mock List interface
查看>>
[React] Use Jest's Snapshot Testing Feature
查看>>