【问题标题】:How to play an MP3 stream in C#如何在 C# 中播放 MP3 流
【发布时间】:2011-07-06 19:43:22
【问题描述】:

我想在我的 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);
                    }
                }
            }

【问题讨论】:

  • 你看到的异常是什么,是哪一行代码?
  • 基本上这段代码在循环中运行,当套接字在几次迭代后收到新数据包时运行“WaveOut 设备在 WaveOut.finalize() 时未关闭”异常出现在消息框中。

标签: c# audio mp3 naudio


【解决方案1】:

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

【讨论】:

  • 您好,先生。我希望你会看到这个。我在上面尝试了您的示例,但意识到它需要完全下载文件,然后开始播放。 NAudio 支持实时播放吗?
【解决方案2】:

http://www.un4seen.com/

bass.dll .NET api

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    相关资源
    最近更新 更多