使用C#播放流中的音频
C#中是否有一种方法可以直接从System.IO.Stream播放音频(例如MP3),例如从WebRequest中还原而无需将数据临时保存到磁盘上? NAudio解决方案 借助NAudio 1.3,可以: 将URL中的MP3文件加载到MemoryStream中 完全加载后将MP3数据转换为wave数据 使用NAudio的WaveOut类播放波形数据 能够播放一半加载的MP3文件本来很好,但是由于NAudio库设计,这似乎是不可能的。 这是可以完成工作的功能: 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); } } …