用C#和NAudio解码库播放mp3示例

本文并非使用wmp控件和mci,而是用NAudio库原生解码,占用资源很小。推荐C#和.Net开发人员使用。

 

NAudio 是一款开源的用于.NET平台下的音频处理类库。提供了很多的简易方法来操作音频数据。

下图是官方示例程序。

源代码和示例程序地址见官网: http://naudio.codeplex.com/

naudiodemo.png

 

 

经过对示例程序分析,可得出播放mp3的最小代码如下:

 

1 using System;
2  using System.Text;
3  using NAudio.Wave;
4  using NAudio.CoreAudioApi;
5  using System.Threading;
6  using System.IO;
7
8  namespace KidPlayer
9 {
10
11 class Program
12 {
13 static void Main()
14 {
15 using (var ms = File.OpenRead(@"test.mp3"))
16 using (var rdr = new Mp3FileReader(ms))
17 using (var wavStream = WaveFormatConversionStream.CreatePcmStream(rdr))
18 using (var baStream = new BlockAlignReductionStream(wavStream))
19 using (var waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
20 {
21 waveOut.Init(baStream);
22 waveOut.Play();
23 while (waveOut.PlaybackState == PlaybackState.Playing)
24 {
25 Thread.Sleep(100);
26 }
27 }
28 }
29 }
30
31
32 }
33  

 

 

 

posted @ 2010-05-04 12:19  kidfruit  阅读(6589)  评论(4编辑  收藏  举报