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