在 safari 5 中,不支持新音频,因此错误控制台显示:
TypeError : 'undefined' is not a constructor (evaluating 'new Audio')
我如何以编程方式知道浏览器是否支持新音频?
在 safari 5 中,不支持新音频,因此错误控制台显示:
TypeError : 'undefined' is not a constructor (evaluating 'new Audio')
我如何以编程方式知道浏览器是否支持新音频?
我想你可以试试...
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
有多种解决方案可以检查它是否存在。
检查类型Audio
是否不是“未定义”。
if (typeof window.Audio !== "undefined")
检查是否window
有属性Audio
。
if ("Audio" in window)
以下可能会产生错误。
if (window.Audio)
但是,这段代码并不能保证它是一个好的音频实现。它可能只是一些随机脚本这样做:window.Audio = 'http://link.to/some/mp3'
.