某些手机​​上不存在AudioContext()?

时间:2014-04-10 01:30:54

标签: android google-chrome html5-audio

我试图在Samsung Galaxy SII 4G上使用最新版Chrome(34.0.1847.114)中的AudioContext(),但由于某种原因,AudioContext()不存在,webkitAudioContext也不存在。完全相同的代码在Nexus 5和较旧的手机(如Galaxy Nexus)上完全正常,但不是SII。某些设备不支持HTML5音频吗?如果没有,任何人都可以解释原因或指向我关于AudioContext支持的一些文档吗?

确切代码我使用:

window.AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext();

同样,这在其他Android手机上运行得非常好。在S2上我得到" Uncaught TypeError:undefined不是函数"。

2 个答案:

答案 0 :(得分:9)

Webaudio API仍然是一个工作草案。在此处查看support list

显然并非所有的Android设备都准备好了......见here for an example。 与任何新的(令人兴奋的)功能一样,您需要在设备上使用它们之前测试支持:

var contextClass = (window.AudioContext || 
window.webkitAudioContext || 
window.mozAudioContext || 
window.oAudioContext || 
window.msAudioContext);
if (contextClass) {
    // Web Audio API is available.
    var context = new contextClass();
} else {
    // Web Audio API is not available. Fallback
}

Reference

答案 1 :(得分:1)

这取决于您使用的浏览器。 Android Native浏览器不支持Web Audio,但最新的Chrome是最新设备上的默认浏览器支持。

我在SoundJS上工作,这可以让你构建可以在任何地方使用的音频。

希望有所帮助。