使用C#播放MP3文件

3

我正在寻找一种在没有第三方播放器(媒体播放器等)的情况下播放MP3文件的方法。有没有什么方法可以做到?谢谢。


2个回答

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();
}

谢谢,我猜那就是我要找的,当歌曲播放结束时,OnPlaybackStopped事件会被触发吗? - idish
@idish,NAudio文档写得很好,对于你的问题,只需尝试使用它,你就会找到答案。 - Lex Li
我正在使用NAudio来播放MP3文件,它之前一直能够正常播放,但是几分钟前突然停止了播放歌曲,并且没有任何错误被抛出。这是我的代码https://pastebin.com/m5NLHfdy - Jamshaid K.

0

我不明白为什么你要避免使用第三方库。如果你在编写C#代码,那么你可能是在开发Windows应用程序,通常会有winmm.dll。因此,你可以导入并使用mciSendString就像这个例子中一样

然而,如果你将MP3数据转换为原始数据,你可以使用.NET SoundPlayer类来播放它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接