在 Safari 5 中不支持新的音频(Audio)功能,因此错误控制台会显示:
TypeError : 'undefined' is not a constructor (evaluating 'new Audio')
我该如何编写程序来判断浏览器是否支持新的音频技术?
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
的类型是否为“undefined”。
if (typeof window.Audio !== "undefined")
检查 window
是否具有属性 Audio
。
if ("Audio" in window)
if (window.Audio)
然而,这段代码并不能保证它是一个好的音频实现。它可能只是一些随机脚本执行了这个操作:window.Audio = 'http://link.to/some/mp3'
。