在IE中使用HTML音频:MEDIA12899:音频/视频:未知MIME类型。

6

下面是Html:

<audio id="audioCap" preload="auto" type="audio/wav"></audio>

Js:

$('#audioCap')[0].play();

将 "src" 设置如下:

$('#audioCap').attr('src', 'http://blabla/captcha/captcha.wav?' + response);

其中,response是一个id。

这个在所有浏览器上都能正常工作,除了IE9-11版本之外。我得到了 MEDIA12899:AUDIO/VIDEO: 未知的 MIME 类型 错误。我做了一些研究,发现应该是服务器配置问题。我使用调试工具捕获了网络数据并检查了响应头。 Content-Type 显示为 audio/wav,这是正确的。我不知道还有什么其他原因会导致这个错误。


1
IE不支持wav文件。您需要为IE提供其他格式的音频。 - maja
1个回答

12

不幸的是,因为Internet Explorer不支持wav文件。

为了达到跨浏览器兼容性,您需要提供多种格式的相同音频文件。

请查看此网站上的表格:

https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats

为了支持IE,您需要添加mp3mp4格式。

要为当前浏览器提供正确的格式,您可以使用类似于下面这样的内容:

var source= document.createElement('source');
if (audio.canPlayType('audio/mpeg;')) {
    source.type= 'audio/mpeg';
    source.src= 'audio/song.mp3';
} else {
    source.type= 'audio/wav';
    source.src= 'audio/song.wav';
}
audio.appendChild(source);

(来源:如何通过编程方式向HTML5音频标记添加多个来源?)

编辑:值得注意的是,您在处理音频、视频和字体时都会遇到相同的问题。


感谢澄清。我在很多论坛上读到不同的东西。我将设置服务器来同时提供mp3和wav文件。 - user3755508

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接