IE bug无效源HTML5音频 - 解决方法

时间:2014-06-13 20:22:43

标签: asp.net html5 audio internet-explorer-11

我(以及大约一百万人)在IE11中发现了一个错误(不确定其他版本是否有相同的错误),如果您创建HTML5音频标记,浏览器会报告“无效来源”,无论如何。我已经尝试过每一个我能想到的组合而没有运气。 至今: 将HTML结束标记从自闭合更改为显式 更改文件名以消除任何奇怪的字符 将音频子格式更改为每个可能的设置 添加显式URI(“http:// ...”) 禁用所有插件(库存插件上有) 尝试每种可能的音频格式 定义MIME类型 更改音频标签的参数。 更改了IIS设置以包含MIME类型。

检查微软的“连接”网站 - (他们声称它不具有可复制性,但数十万条谷歌搜索结果表示不然)。

这根本不可能吗?所有其他最新&我尝试过的最好的浏览器(FireFox,Opera,Safari,Chrome) 我现在已经结束了 - 没有解决办法。

以下是代码:

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="AudioPopupPlayer.aspx.vb" Inherits="AudioPopupPlayer" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
        <div style="padding-top: 30px; margin: auto; width: 300px;">
        <asp:Literal ID="litVoiceOver" runat="server"></asp:Literal></div>
</body>
</html>

代码背后:

Partial Class AudioPopupPlayer
Inherits System.Web.UI.Page

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Dim VoiceOverFileName As String = Request.QueryString("vo")
    If VoiceOverFileName.Length > 0 Then
        Dim root As String = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + ResolveUrl("~/")
        Dim audiosource As String = "<audio id=""VoiceOver"" autoplay=""autoplay"" preload=""preload"" controls=""controls""><source src=""" & root & "audio/" & VoiceOverFileName & ".ogg"" type=""audio/ogg"" ></source><source src=""" & root & "audio/" & VoiceOverFileName & ".mp3"" type=""audio/mpeg"" ></source><source src=""" & root & "audio/" & VoiceOverFileName & ".wav"" type=""audio/wav"" ></source></audio>"
        Me.litVoiceOver.Text = audiosource
    End If
End Sub

 End Class

最后,屏幕截图(在IE11中)显示HTML呈现完美,但我仍然得到可怕的“无效源”消息(注意:复制和粘贴链接会导致播放音频文件 - 去图)

bug in IE 11

5 个答案:

答案 0 :(得分:1)

我尝试使用简单的HTML5代码时遇到了同样的问题。网址和文件名也是正确的。这对我有用:

<audio src="song.mp3" controls autoplay></audio>

如果你不需要它们,你可以删除控件,它仍然可以正常工作。我希望这有帮助!

答案 1 :(得分:0)

我尝试了几种新的文件格式。 Internet Explorer 11仅支持M4A音频格式(不支持WAV,OGG和MP3)。 微软真的需要在他们的网站上提供有关他们的浏览器支持的正确信息(他们声称MP3支持,但显然,它不是)。 疯了,我告诉你!

答案 2 :(得分:0)

我们在企业环境中遇到了同样的问题,全新安装了IE11和Windows 7.

我们已经通过安装K-Lite媒体包并安装了备用MP3编解码器解决了这个问题。然后它奏效了。

答案 3 :(得分:0)

来自here的评论:

  

Jonathan Laughery于2014年5月23日22:19发表   这是因为IE的HTML5音频标签不支持WAV PCM格式。这特别奇怪,因为IE确实支持弃用的bgsound标签中的WAV PCM,WAV PCM永远是原生的Microsoft Windows音频格式,而微软是唯一不支持它的主要浏览器。 WAV在声音档案中仍然很受欢迎,并且在企业网络上使用,但在IE中播放WAV需要bgsound标签(特定于IE,不赞成,控制不佳),在服务器上进行转码,或者使用flash播放器(如jPlayer的后备)是HTML5音频标签旨在避免的。请添加此格式。

以下是有关bgsound的文档。如果你打算使用bgsound this might是有帮助的

答案 4 :(得分:0)

检查浏览器的响应标头以获取音频文件响应。由于服务器未配置为将音频文件作为audio / mpeg发送,因此我遇到了此问题。有人在IE中将mp3设置为application / octet-stream。一旦我解决了这个问题,一切正常。