2016-12-08 63 views
0

我有這樣的.aspx C#代碼有問題的服務,從MP3播放到的.aspx ie瀏覽器文件:麻煩使用< audio>

protected void Page_Load(object sender, EventArgs e) 
{ 
    string url = Request["url"]; 
    string type = Request["ext"]; 

    if (!string.IsNullOrEmpty(url)) 
    { 
     url = HttpUtility.UrlDecode(url); 

     WebClient client = new WebClient(); 
     byte[] file = client.DownloadData(url); 

     if (file != null && file.Length > 0) 
     { 
      Response.Clear(); 
      Response.Buffer = true; 
      Response.ContentType = "audio/mpeg"; 
      Response.AddHeader("Content-Disposition", "inline"); 
      Response.BinaryWrite(file); 
      Response.End(); 
     } 
    } 
} 

它工作正常,在IE之外的所有瀏覽器。在IE中,<音頻>標籤播放器顯示一條含有「無效源」的神祕消息。沒有控制檯錯誤或警告。我猜我在Response設置中有一個微妙的錯誤。下面是音頻>標記<,但正如我所說,它適用於除IE以外的所有瀏覽器。我已經走出了一條路,試圖讓它在IE上運行 - 再一次,這是迄今爲止最困難的瀏覽器。經過這麼多年,這已經超出了令人心碎的地步。人們在微軟做什麼?

<audio controls="true" preload="none"> 
    <source src="http://localhost:8056/web/Recordings/RE4cdf6a142506328787e9c88cbf7c4885.mp3" type="audio/mpeg"></source> 
Your browser does not support HTML5 audio. Please consider upgrading your browser to the latest version. 
</audio> 
+0

檢查這裏的答案,看看這是否會幫助http://stackoverflow.com/questions/27817266/how-to-correctly-use-urlencode-and-decode否則做'谷歌搜索HttpUtility.UrlDecode'來看看你是否正在做錯事 – MethodMan

+0

謝謝,但如果解碼/編碼不好,是不是會影響所有的瀏覽器,不只是IE?我想這個錯誤就像我提到的那樣是一個響應設置。喜歡,也許我錯過了一個標題或錯誤地使用一個標題? – Ringo

+0

也許你有特殊字符,在IE中有不同的解釋 – MethodMan

回答

1

您使用的是哪個版本的IE? HTML5與IE 9+兼容。 您將需要HTML5shiv爲IE瀏覽器提供兼容性年紀比IE 9

如果使用IE 9,你應該使用這樣的:

<!-- Display the audio player with control buttons. --> 
<audio src="http://localhost:8056/web/Recordings/RE4cdf6a142506328787e9c88cbf7c4885.mp3" controls autoplay loop> 
    HTML5 audio not supported 
</audio> 

注:如果您在Intranet上開發並且存在HTML5渲染問題,您可以添加到網頁的塊中以強制Internet Explorer使用最新標準。如果您願意,可以將Web開發服務器配置爲使用IE = edge發送meta http-equiv-「X-UA兼容」標頭。

Reference

+0

感謝這個信息,但是我使用最新的IE 11和開發工具,說版本是「邊緣」,這是我假設是11.我也嘗試過meta標籤。我真的認爲問題必須是響應設置,因爲我找不到任何如何使用c#爲.mp3/.mp4提供響應值的示例。例如,我不知道是否應該使用Response.BinaryWrite()或Response.WriteFile()。 – Ringo

+0

我的猜測是,如果問題出現在響應中,它將無法在任何瀏覽器中運行,因爲數據不能從服務器端正確發送。你提到它適用於所有瀏覽器,但IE瀏覽器,所以需要檢查客戶端專門爲IE瀏覽器。 – Pablo

+0

我覺得有一些好的瀏覽器的擺動房間,因爲他們會看標題,並做出明智的決定。例如,儘管我最初提供的是「附件」的內容處置 - 通常會打開「另存爲...」對話框,