天天看点

MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量

原文: MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量

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

  * Author:     Micro

  * Date:       2016=03-25            

点击下载源码  

  * Qq:         [email protected]

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

一、播放窗口

MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量
二、选择文件
MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量
三、播放视频
MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量

四、开发技术要领

创建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);
      

继续阅读