Javascript HTML5音频,带有Web音频API-不适用于Firefox

Javascript HTML5音频,带有Web音频API-不适用于Firefox,javascript,html,firefox,audio,web-audio-api,Javascript,Html,Firefox,Audio,Web Audio Api,所以我最近发布了这个问题: 我已经得出结论,我只是没有时间让Firefox实现这一点。这将是很好的,但我有其他项目,我需要工作。所以我决定只对它执行一个简单的功能检查,这样它仍然可以在Firefox中玩,但不尝试加载可视化工具,这会导致整个播放器卡住,根本无法玩 但我一点也不确定要检查哪些功能?Web API在它只是Web API时工作,而自定义控件在它只是自定义控件时工作,那么我到底要检查什么,以便 if(functionality not supported){ //Don't lo

所以我最近发布了这个问题:

我已经得出结论,我只是没有时间让Firefox实现这一点。这将是很好的,但我有其他项目,我需要工作。所以我决定只对它执行一个简单的功能检查,这样它仍然可以在Firefox中玩,但不尝试加载可视化工具,这会导致整个播放器卡住,根本无法玩

但我一点也不确定要检查哪些功能?Web API在它只是Web API时工作,而自定义控件在它只是自定义控件时工作,那么我到底要检查什么,以便

if(functionality not supported){
    //Don't load Visualizer at all();
}

我最初的jFiddle就在这里:

好吧,您正在尝试解决一个bug。所以,如果你想要真正的特征检测,你需要编写一个函数来尝试做你想做的事情,看看它是否有效。因为你正在处理CORS的东西并发出请求,这意味着这将是一个异步测试——这可能很难,取决于你的应用程序是如何设置的


另一个选择是次优的,但也很简单,就是做一些类似于
/firefox/i.test(navigator.userAgent)

的事情,我希望不必求助于userAgent,因为当firefox的bug得到修复时,这是一个合法的文档问题,我必须回到代码中并删除userAgent。是的,我听到了。您完全可以对一个您知道有CORS头的文件运行一个快速测试,看看它是否有效——您只需要绕过特性测试是异步的这一事实。