成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

為大寧等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及大寧網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站制作、大寧網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

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

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

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

第一種方式:

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)開始播放
      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需要先停止播放才能再開始播放,
      // 否則會(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需要先停止播放才能再開始播放,
      // 否則會(huì)停在最后一幀不動(dòng)
      mediaElement.Stop(); 
      mediaElement.Play(); 
    }
    /*
      播放控制按鈕的點(diǎn)擊事件 
    */
    private void btnPlay_Click(object sender, RoutedEventArgs e)
    {
      mediaElement.Play(); // 開始播放
      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ì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!

新聞名稱:C#使用WPF用MediaElement控件實(shí)現(xiàn)視頻循環(huán)播放
新聞來源:http://jinyejixie.com/article42/ijchec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)搜索引擎優(yōu)化、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、虛擬主機(jī)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
荆州市| 吐鲁番市| 平远县| 武川县| 灌阳县| 巴南区| 灌阳县| 洞头县| 沽源县| 陕西省| 宁明县| 高安市| 宝山区| 六枝特区| 益阳市| 左云县| 楚雄市| 登封市| 绥中县| 镇宁| 荣昌县| 昌平区| 寻乌县| 海丰县| 大荔县| 尖扎县| 栾城县| 富蕴县| 延边| 大兴区| 永登县| 东丽区| 松桃| 静乐县| 南京市| 依兰县| 保定市| 汉中市| 灵宝市| 延吉市| 延庆县|