欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C#教程

當(dāng)前位置:主頁(yè) > 軟件編程 > C#教程 >

C# 使用WPF 用MediaElement控件實(shí)現(xiàn)視頻循環(huán)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

 在WPF里用MediaElement控件,實(shí)現(xiàn)一個(gè)循環(huán) 單一視頻的程序,同時(shí)可以控制視頻的 、暫停、停止。

  一種方式,使用MediaElement.MediaEnded事件,在視頻 結(jié)束后,自動(dòng)重新 ;

  另一種方式,使用WPF定時(shí)器,在定時(shí)器事件里寫(xiě)入視頻 代碼。

  后者優(yōu)點(diǎn)是可以控制循環(huán)時(shí)長(zhǎng),不必等到視頻 結(jié)束就可以開(kāi)始下一次 ,比如:同時(shí)啟動(dòng)多個(gè) 程序,使多個(gè)時(shí)長(zhǎng)不同的視頻同時(shí) ,無(wú)限循環(huán),如果采用第一種方式,累計(jì)多次自動(dòng) 后,視頻內(nèi)容就無(wú)法同步。

第一種方式:

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;
      // 添加元素加載完成事件 -- 自動(dòng)開(kāi)始      
      mediaElement.Loaded += new RoutedEventHandler(media_Loaded); 
      // 添加媒體      結(jié)束事件 -- 重新      
      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需要先停止      才能再開(kāi)始      ,
      // 否則會(huì)停在最后一幀不動(dòng)
      (sender as MediaElement).Stop();
      (sender as MediaElement).Play();
    }
    private void media_Unloaded(object sender, RoutedEventArgs e)
    {
      (sender as MediaElement).Stop();
    }
    /*
            控制按鈕的點(diǎn)擊事件 
    */
    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(); // 定時(shí)器timer
    int durTime = 5; // 視頻      時(shí)長(zhǎng),也就是循環(huán)周期
    // 窗口加載事件
    private void Window_Loaded(object sender, RoutedEventArgs e) 
    {
      mediaElement.Source = new Uri("D:/bird.mp4"); // 綁定視頻文件
      mediaElement.Play(); // 設(shè)置啟動(dòng)      
      timer.Interval = new TimeSpan(0, 0, 0, durTime); // 設(shè)置定時(shí)器重復(fù)周期
      timer.Tick += new EventHandler(timerEvent); // 設(shè)置定時(shí)器事件
      timer.Start(); // 啟動(dòng)定時(shí)器
    }
    // 定時(shí)器事件 
    public void timerEvent(object sender, EventArgs e)
    {
      // MediaElement需要先停止      才能再開(kāi)始      ,
      // 否則會(huì)停在最后一幀不動(dòng)
      mediaElement.Stop(); 
      mediaElement.Play(); 
    }
    /*
            控制按鈕的點(diǎn)擊事件 
    */
    private void btnPlay_Click(object sender, RoutedEventArgs e)
    {
      mediaElement.Play(); // 開(kāi)始      
      timer.Start(); // 重新啟動(dòng)定時(shí)器
    }
    private void btnPause_Click(object sender, RoutedEventArgs e)
    {
      mediaElement.Pause(); // 暫停當(dāng)前      
      timer.Stop(); // 停止定時(shí)器
    }
    private void btnStop_Click(object sender, RoutedEventArgs e)
    {
      mediaElement.Stop(); // 停止當(dāng)前      
      timer.Stop(); // 停止定時(shí)器
    }

總結(jié)

以上所述是小編給大家介紹的C# 使用WPF 用MediaElement控件實(shí)現(xiàn)視頻循環(huán) ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!

上一篇:詳解C#App.config和Web.config加密

欄    目:C#教程

下一篇:WinForm IP地址輸入框控件實(shí)現(xiàn)

本文標(biāo)題:C# 使用WPF 用MediaElement控件實(shí)現(xiàn)視頻循環(huán)

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5190.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有