如何从C#的在线资源中播放.mp3文件?

时间:2012-07-28 21:19:29

标签: c# winforms mp3

我的问题与此question

非常相似
  

我有音乐网址。像http://site.com/audio.mp3这样的网址。我想玩   这个文件在线,像youtube。你知道一个类或代码可以做什么   这个?

如何在不下载全部播放的情况下在线播放mp3?

将创建播放文件缓存的

,但至少会立即播放该文件

2 个答案:

答案 0 :(得分:4)

我找到了库NAudio的解决方案 http://naudio.codeplex.com/

<强>解

public static void PlayMp3FromUrl(string url)
{
    using (Stream ms = new MemoryStream())
    {
        using (Stream stream = WebRequest.Create(url)
            .GetResponse().GetResponseStream())
        {
            byte[] buffer = new byte[32768];
            int read;
            while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
        }

        ms.Position = 0;
        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);
                }
            }
        }
    }
}`

我在这里找到答案 Play audio from a stream using C#

答案 1 :(得分:1)

像IrKlang这样的许多图书馆都提供流媒体音频支持,如果你正在寻找最小的开发工作,我建议你去看看吧!

http://www.ambiera.com/irrklang/