亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用C#播放流中的音頻

使用C#播放流中的音頻

神不在的星期二 2019-07-29 16:38:30
使用C#播放流中的音頻C#中是否有一種方法可以直接從System.IO.Stream播放音頻(例如MP3),例如從WebRequest返回而不將數據臨時保存到磁盤?與NAudio的解決方案在NAudio 1.3 的幫助下,可以:將URL中的MP3文件加載到MemoryStream中完全加載后,將MP3數據轉換為波形數據使用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);                 }             }             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);                     }                 }             }         }     }
查看完整描述

3 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

低音可以做到這一點。從內存中的Byte []或在您返回數據的直通文件委托中播放,因此您可以在有足夠數據開始播放時立即播放。


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 2813 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號