6

在 safari 5 中,不支持新音频,因此错误控制台显示:

TypeError : 'undefined' is not a constructor (evaluating 'new Audio')

我如何以编程方式知道浏览器是否支持新音频?

4

2 回答 2

3

我想你可以试试...

var createAudio = function() {
 try {
    return new Audio(); 
 } catch(e) {
    return false;
 }
};
var audio = createAudio();
if(audio) {
  // start playing... or check formats etc.
}

如果出现异常,Audio 类不存在并返回 false。

有关更详细的解决方案,请查看 Modernzr 库:http ://modernizr.com/docs/#audio

相关解决方案在这里Detecting html5 audio support with Modernizr

于 2015-05-10T13:19:25.947 回答
2

有多种解决方案可以检查它是否存在。

检查类型Audio是否不是“未定义”。

if (typeof window.Audio !== "undefined")

检查是否window有属性Audio

if ("Audio" in window)

以下可能会产生错误。

if (window.Audio)

但是,这段代码并不能保证它是一个好的音频实现。它可能只是一些随机脚本这样做:window.Audio = 'http://link.to/some/mp3'.

于 2018-11-14T08:48:57.170 回答