天天看點

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

繼續閱讀