IE 11的奇怪音频行为

时间:2014-03-28 05:35:46

标签: javascript html html5 audio

我正在尝试将HTML5音频嵌入到Web项目中,以便在触发某些事件时在后台播放。

奇怪的是,Internet Explorer显然不会从我的某个网域加载音频。为了证明这一点,我制作了4个相同的录音副本,其中2个放入sandbox.g-liu.com(子域),其中2个放入g-liu.com(无子域)。代码如下。请注意,我使用的是绝对URL,因此无论放在何处,此代码都不会导致404。

<audio id="asmpg" controls>
        <source src="http://sandbox.g-liu.com/src/cat.mp3" type="audio/mp3" />
        <source src="http://sandbox.g-liu.com/src/cat.ogg" type="audio/ogg" />
        No audio support.
</audio>

<h2>Audio MP3/OGG from other subdomain</h2>

<audio id="admpg" controls>
        <source type="audio/mpeg" src="http://g-liu.com/files/cat.mp3" />
        <source type="audio/ogg" src="http://g-liu.com/files/cat.ogg" />
</audio>

JS FIDDLE:http://jsfiddle.net/2xrUK/

Opera,Firefox,Chrome :加载两个音频元素。

Safari :未经过测试。不要拥有一台Mac。

Internet Explorer 11 :加载第一个#asmpg正常,但无法从g-liu.com加载音频。在控制台中,我收到了消息,

MEDIA12899: AUDIO/VIDEO: Unknown MIME type.

其他浏览器没有此问题,可以播放音频。此时,我无法理解为什么IE无法从g-liu.com检索音频。它告诉我它遇到了未知的MIME类型,但我确实在source标记中指定了它。也许它是数据发送到网页的方式?

(旁注:为了调试目的,这是我尝试做的简化。在实际开发中,我正在异步加载音频,并在用户点击时播放/暂停音频按钮)。

1 个答案:

答案 0 :(得分:1)

设置服务器以发送具有正确MIME类型的文件。

您可以使用http://simonecarletti.com/tools/http-checker进行测试。寻找“内容类型”。

http://g-liu.com/files/cat.mp3说“application / octet-stream”。应该是“audio / mpeg”。

同样在你的例子中你写了audio / mp3和audio / mpeg。它们都应该是audio / mpeg。

您可以在网站根目录的.htaccess文件中添加以下内容以更改Apache设置:

AddType audio/mpeg .mp3

问题是您的服务器设置。不是IE11或您的代码。