我(以及大约一百万人)在IE11中发现了一个错误(不确定其他版本是否有相同的错误),如果你创建一个
HTML5音频标签,浏览器会报告“无效来源”,无论如何.我已经尝试过每一个我能想到的组合而没有运气.
至今:
将HTML结束标记从自闭合更改为显式
更改文件名以消除任何奇怪的字符
将音频子格式更改为每个可能的设置
添加显式URI(“http:// …”)
禁用所有插件(库存插件上有)
尝试所有可能的音频格式
定义MIME类型
更改音频标签的参数.
更改了IIS设置以包含MIME类型.
至今:
将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完美呈现,但我仍然得到可怕的“无效源”消息(注意:复制和粘贴链接会导致音频文件播放 – 去图).