本文并非使用wmp控件和mci,而是用NAudio库原生解码,占用资源很小。推荐C#和.Net开发人员使用。
NAudio 是一款开源的用于.NET平台下的音频处理类库。提供了很多的简易方法来操作音频数据。
下图是官方示例程序。
源代码和示例程序地址见官网: http://naudio.codeplex.com/
经过对示例程序分析,可得出播放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