我正在尝试将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
标记中指定了它。也许它是数据发送到网页的方式?
(旁注:为了调试目的,这是我尝试做的简化。在实际开发中,我正在异步加载音频,并在用户点击时播放/暂停音频按钮)。
答案 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或您的代码。