使用< .asxx将文件从.aspx提供给IE浏览器音频和GT;

时间:2016-12-08 22:22:53

标签: c# asp.net mp3 html5-audio

我对此.aspx c#code:

有疑问
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中,<音频和GT;标签播放器显示一条神秘的消息,说“#34; Invalid Source"。没有控制台错误或警告。我猜测我的响应设置中有一个微妙的错误。以下是<音频和GT;标记,但就像我说的,它适用于除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>

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的IE? HTML5与IE 9+兼容。 您将要求HTML5shiv为早于IE 9的IE浏览器提供兼容性。

如果使用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发送元http-equiv-“X-UA-Compatible”标头。

Reference