我开发了一个包含 6 个音频文件的网站。它在 Chrome、IE9、Firefox 以及 iPad 和 Android 设备上运行良好。但在 IE10 中加载时,某些音频文件无法加载。控制台中没有错误消息。
<audio id="audio1" preload="auto">
<source src="foo.mp3" type='audio/mpeg; codecs="mp3"'>
<source src="foo.ogg" type='audio/ogg; codecs="vorbis"'>
</audio>
在 IE10 的网络选项卡中,我勾选了“开始捕获”,然后开始浏览包含音频的页面。对应于音频文件,状态和 MIME 类型显示为“待处理”,大小显示为 0 字节。我检查了服务器中的 MIME 类型,发现它设置正确。
AddType audio/ogg .ogg
AddType audio/mpeg .mp3
GET 请求有一些奇怪之处。总共有三次针对 .mp3 文件的请求。第一次请求的结果显示为“已中止”。
请求标头
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-US
Connection Keep-Alive
DNT 1
GetContentFeatures.DLNA.ORG 1
Host foobar.com
Pragma getIfoFileURI.dlna.org
Referer http://foobar.com/
Request GET /foobar/media/file1_001_01_01.mp3 HTTP/1.1
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
响应头为空。
第二个GET请求的结果是206部分内容。
请求标头
Request GET /foobar/media/file1_001_01_01.mp3 HTTP/1.1
Accept */*
If-Unmodified-Since Mon, 17 Feb 2014 05:37:37 GMT
If-Match "d12e3-b8a9-4f2938d9f8a40"
Range bytes=24576-47272
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Referer http://foobar.com/
GetContentFeatures.DLNA.ORG 1
Pragma getIfoFileURI.dlna.org
Accept-Language en-US
Accept-Encoding gzip, deflate
Host foobar.com
DNT 1
Connection Keep-Alive
响应标头
Response HTTP/1.0 206 Partial Content
Date Tue, 18 Feb 2014 04:52:39 GMT
Server Apache
Last-Modified Mon, 17 Feb 2014 05:37:37 GMT
ETag "d12e3-b8a9-4f2938d9f8a40"
Accept-Ranges bytes
Content-Type audio/mpeg
Content-Range bytes 24576-47272/47273
Content-Length 22697
Age 2
X-Cache HIT from localhost
X-Cache-Lookup HIT from localhost:3128
Via 1.1 localhost:3128 (squid/2.7.STABLE7)
Connection keep-alive
Proxy-Connection keep-alive
第三个请求的结果显示为“待处理”。
请求标头
Request GET /foobar/media/audio1_001_01_01.mp3 HTTP/1.1
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
If-Modified-Since Mon, 17 Feb 2014 05:37:37 GMT
If-None-Match "d12e3-b8a9-4f2938d9f8a40"
Accept */*
Referer http://foobar.com/
GetContentFeatures.DLNA.ORG 1
Pragma getIfoFileURI.dlna.org
Accept-Language en-US
Accept-Encoding gzip, deflate
Host foobar.com
DNT 1
Connection Keep-Alive
我在 IE10 中以隐私浏览模式加载了我的网站,一切运行正常,没有任何问题。此外,只有从服务器加载网站时才会出现问题。我在 IE10 中以正常模式从本地主机加载了网站,一切运行正常。
我尝试了各种方法让它工作,但还没有成功。我已经做了以下事情:
- 按 Ctrl+Shift+Delete 并单击“确定”清除缓存和历史记录。
- 在“Internet 选项”的“高级”选项卡中完成“清除个人设置”。
- 将我的网站放入可信网站。
- 禁用所有插件和附加组件。
- 已禁用 Windows 防火墙。
- 已禁用防病毒保护。
- Internet 选项 > 高级 > 加速图形 > 选中“使用软件渲染而不是 GPU 渲染”。
我在另一台计算机上的 IE10 中检查了该网站,问题仍然存在。
注意:最初这篇文章是在 Super User 中发布的,但三天来我都没有收到任何回复。从 stackoverflow 获得回复的可能性更大。所以请不要举报这篇文章。
答案1
使用这个测试页我可以在 IE10 上正常收听 mp3。
如果您也能正常收听,请尝试使用协议嗅探器找出差异。
否则,请尝试以管理员身份启动 IE 并听音乐。如果成功,请重新启动并以非管理员(普通帐户)身份重试。此方法有时可以解决权限问题。
如果没有任何效果,我建议安装 IE11 来(也许)摆脱这种困境。
[编辑]
您在帖子中显示的第一个请求是无稽之谈,因此被正确地中止。
我已将您的其他请求和响应与上述测试页中的请求和响应进行了比较,您的请求和响应看起来不合逻辑或不可接受。甚至您的 HTML<audio>
标签也不同。
我建议在您的网站中使用与现在不同的媒体文件服务器,并改进您的 HTML 代码,尤其是标签,<audio>
使其更符合测试页面的规范。