0
寫音頻我試圖發送這個文件到輸出流,但無法弄清楚爲什麼它基本吐出一個空的mp3文件。正如你所看到的,我會過早地關閉流的異常,所以我現在已經註釋掉了。任何指針讚賞。從音頻文件
using (FileStream mp3file = File.OpenRead(newFile))
{
context.Response.AddHeader("content-transfer-encoding", "binary");
context.Response.ContentType = "audio/mpeg";
MemoryStream memStream = new MemoryStream();
byte[] bytes = new byte[mp3file.Length];
memStream.SetLength(mp3file.Length);
mp3file.Read(memStream.GetBuffer(), 0, (int)mp3file.Length);
memStream.Write(bytes, 0, (int)mp3file.Length);
//mp3file.Close();
memStream.WriteTo(context.Response.OutputStream);
//memStream.Close();
}
謝謝。我認爲,如果我刪除了'memStream.Write(bytes,0,(int)mp3file.Length);'它會工作,但沒有任何dics。這是.net 4.作爲一個高效的代碼和一個noob的.net我有點困惑,試圖實現你的建議。這是我嘗試過的:'byte [] bytes = new byte [mp3file.Length]; mp3file.Read(bytes,0,(int)mp3file.Length); mp3file.CopyTo(context.Response.OutputStream);'沒有喜悅。我真的很想親自嘗試,並感謝您的幫助。 – 2013-04-26 20:11:22
@MrBrimm:那麼你已經*讀取了所有的數據 - 所以'CopyTo'不會幫助你。爲什麼麻煩讀到'字節'呢? *只需*使用'CopyTo'?此外,如果您遇到問題,並且您對.NET相對較新,則可以停止*嘗試進行微優化。先寫清楚的代碼。當你對你的代碼,語言和平臺有絕對的信心時*你可以優化,如果你真的必須的話。 – 2013-04-26 20:22:50
這些文件小於10k。我使用(FileStream mp3file = File.OpenRead(newFile))重試了這個文件並再次清空文件context.Response.AddHeader(「content-transfer-encoding」,「binary」); context.Response.ContentType =「audio/mpeg」; mp3file.CopyTo(context.Response.OutputStream); }' – 2013-04-26 20:34:24