如何检查浏览器是否支持新的音频格式?

6
在 Safari 5 中不支持新的音频(Audio)功能,因此错误控制台会显示:
TypeError : 'undefined' is not a constructor (evaluating 'new Audio')

我该如何编写程序来判断浏览器是否支持新的音频技术?


4
如果('Audio'在窗口中) - jcubic
2
你可以使用canPlayType() 方法。你可以查看这个链接:http://www.w3schools.com/tags/av_met_canplaytype.asp - errorintheapplication
非常感谢您的付出。您的代码完美运行!! - totoaussi
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


2

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

检查Audio的类型是否为“undefined”。

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

检查 window 是否具有属性 Audio

if ("Audio" in window)

以下内容可能会产生错误。
if (window.Audio)

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


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