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

WPF如何實(shí)現(xiàn)音頻文件循環(huán)順序播放-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“WPF如何實(shí)現(xiàn)音頻文件循環(huán)順序播放”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“WPF如何實(shí)現(xiàn)音頻文件循環(huán)順序播放”這篇文章吧。

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出杭錦后免費(fèi)做網(wǎng)站回饋大家。

要做基于WPF的音頻文件循環(huán)順序播放首先要了解WPF下有哪些類(lèi)是用于控制音頻的. 
WPF下主要有兩個(gè)音頻控制的類(lèi),這里做下比較:
1.SoundPlayer  
2.MediaPlayer
 派生MediaElement

一.SoundPlayer類(lèi)
  1.基于.NET FRAMEWORK 2.0;
2.可播放WAV音頻文件; 
3.只能播放一個(gè)文件,同時(shí)播放多個(gè)文件會(huì)后一個(gè)文件的播放操作會(huì)終止前一個(gè)播放的文件;
4.不能對(duì)音量進(jìn)行控制;
二.MediaPlayer類(lèi)
  1.基于WPF; 
2.支持多種音頻文件;
3.可以同時(shí)播放多個(gè)聲音;
4.可以調(diào)整音量對(duì)音頻進(jìn)行控制;
5.支持設(shè)置靜音和左右揚(yáng)聲器;
6.可以控制音頻播放速度和獲取播放進(jìn)度和控制進(jìn)度;     

MediaElement類(lèi)同MediaPlayer的功能類(lèi)似,作為WPF頁(yè)面可用的標(biāo)簽是MediaPlayer的衍生; 
WPF下音頻文件循環(huán)順序播放的開(kāi)發(fā)思路:
首先新建一個(gè)類(lèi)繼承MediaElement;
這個(gè)類(lèi)包含播放邏輯功能:
1.讀取指定文件夾內(nèi)的所有音頻文件;
2.將讀取的文件路徑放入列表;
3.順序讀取列表中的文件名;
4.播放音頻文件;
5.播放完畢讀取下一個(gè)文件名直至列表結(jié)尾;
6.播放音頻文件至列表結(jié)尾則轉(zhuǎn)制列表頭繼續(xù)播放;
在XAML界面加載這個(gè)類(lèi);
Window Load事件里執(zhí)行這個(gè)類(lèi)的播放列表;

下面貼出了WPF下音頻文件循環(huán)順序播放的代碼:


復(fù)制代碼 代碼如下:


WPF界面代碼
 <Window x:Class="MediaApplication.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:md="clr-namespace:MediaApplication"
         Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
     <StackPanel>
         <md:MediaManager x:Name="media"></md:MediaManager>
     </StackPanel>
  </Window>


復(fù)制代碼 代碼如下:


WPF界面CS代碼
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Data;
 using System.Windows.Documents;
 using System.Windows.Input;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.IO;
 using System.Collections.ObjectModel;
 using System.Configuration;

 namespace MediaApplication {
     /// <summary>
     /// Interaction logic for MainWindow.xaml
     /// </summary>
     public partial class MainWindow : Window {
         public MainWindow() {
             InitializeComponent();
         }

         private void Window_Loaded(object sender, RoutedEventArgs e) {
             this.media.PlayList();
         }

 
     }
 }


復(fù)制代碼 代碼如下:


MediaManager類(lèi)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.IO;
using System.Configuration;
using System.Windows;
using System.Collections.ObjectModel;
namespace MediaApplication {
    public class MediaManager : MediaElement {
        public MediaManager() {
            try {
                GetAllDirList(new DirectoryInfo(ConfigurationManager.AppSettings["dir"].ToString()));
            } catch {
            }
        }
        public void PlayList() {
            if(files.Count > 0)
            {
                this.UnloadedBehavior = MediaState.Manual;
                this.LoadedBehavior = MediaState.Manual;
                this.MediaEnded += new RoutedEventHandler(media_MediaEnded);
                this.Source = new Uri( files[index], UriKind.RelativeOrAbsolute);
                this.Play();
            } 
        }
        private void GetAllDirList(DirectoryInfo directory) {           
            foreach(string filter in filters)
            {
                foreach (FileInfo file in directory.GetFiles(filter)) {
                    files.Add(file.FullName);
                }
            }
            foreach (DirectoryInfo subDirectory in directory.GetDirectories()) {
                GetAllDirList(subDirectory);
            }
        }
        private void media_MediaEnded(object sender, RoutedEventArgs e) {
            this.Source = new Uri( files[++index % files.Count], UriKind.RelativeOrAbsolute);
            this.Play();
        }
        private ObservableCollection<string> files = new ObservableCollection<string>();
        private int index = 0;
        private string[] filters = new string[] { "*.wav", "*.mp3" };
    }
}


以上是“WPF如何實(shí)現(xiàn)音頻文件循環(huán)順序播放”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站題目:WPF如何實(shí)現(xiàn)音頻文件循環(huán)順序播放-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://jinyejixie.com/article44/digghe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站網(wǎng)站設(shè)計(jì)、域名注冊(cè)、云服務(wù)器、網(wǎng)站策劃、全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

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

成都app開(kāi)發(fā)公司
涿州市| 方山县| 洱源县| 安徽省| 客服| 荥经县| 海门市| 长治市| 崇礼县| 宁夏| 盐亭县| 洛阳市| 青浦区| 阿荣旗| 博野县| 新兴县| 寿宁县| 涞水县| 南溪县| 田东县| 安徽省| 曲水县| 休宁县| 化州市| 台中县| 连山| 金寨县| 长顺县| 沙湾县| 忻州市| 祁阳县| 聂拉木县| 平定县| 麦盖提县| 德惠市| 南开区| 奉贤区| 黑山县| 阿鲁科尔沁旗| 郧西县| 丰县|