2012-03-10 121 views
2

我正在寻找一种播放MP3文件而没有任何第三方播放它的方式(媒体播放器等)有没有办法做到这一点? 谢谢。使用C#播放MP3文件#

+0

的([使用C#中的WinForms播放声音]可能重复http://stackoverflow.com/questions/1304223/playing- winform-using-c-sharp) – Alejandro 2014-06-14 15:34:10

回答

8

我已经写了叫NAudio一个开放源码库,可以这样做:

private IWavePlayer waveOut; 
private Mp3FileReader mp3FileReader; 

private void PlayMp3() 
{ 
    this.waveOut = new WaveOut(); // or new WaveOutEvent() if you are not using WinForms/WPF 
    this.mp3FileReader = new Mp3FileReader("myfile.mp3"); 
    this.waveOut.Init(mp3FileReader); 
    this.waveOut.Play(); 
    this.waveOut.PlaybackStopped += OnPlaybackStopped; 
} 

private void OnPlaybackStopped(object sender, EventArgs e) 
{ 
    this.waveOut.Dispose(); 
    this.mp3FileReader.Dispose(); 
} 
+0

谢谢,我想这正是我所期待的,OnPlaybackStopped事件在歌曲到达时被解雇了? – idish 2012-03-10 10:12:59

+0

@idish,NAudio有很好的文档记录,对于你的问题,只需使用它,你会看到答案。 – 2012-03-10 11:13:18

+0

好的,谢谢。 – idish 2012-03-10 11:41:04

0

我不明白你为什么要避开第三方库。如果你使用c#编写代码,你可能正在开发windows,通常有winmm.dll。所以你可以导入并使用mciSendStringlike in this example

但是,如果您将MP3数据转换为原始数据,则可以使用.NET SoundPlayer类进行播放。