如何在C#中播放MP3流

时间:2011-03-01 20:51:47

标签: c# audio mp3 naudio

我想在我的C#应用​​程序中播放MP3流。我有一个服务器应用程序捕获波形音频并将其转换为MP3,然后将其写入网络流。然后客户端读取此流以播放MP3。我已经使用以下代码示例尝试了NAudio,但它导致异常:

using (WaveStream blockAlignedStream =
                new BlockAlignReductionStream(
                    WaveFormatConversionStream.CreatePcmStream(
                        new Mp3FileReader(ms))))
            {
                using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
                {
                    waveOut.Init(blockAlignedStream);
                    waveOut.Play();                        
                    while (waveOut.PlaybackState == PlaybackState.Playing )                        
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }

2 个答案:

答案 0 :(得分:1)

http://www.un4seen.com/

bass.dll .NET api

我知道它不是你的代码的答案,而是一个很好的音乐库

答案 1 :(得分:1)

我在我的博客上发布了一篇文章,解释how to play back an MP3 stream using NAudio。基本上你有一个线程下载MP3帧,解压缩并存储在BufferedWaveProvider。然后另一个线程使用BufferedWaveProvider作为输入进行回放。