【问题标题】:AudioContext() doesn't exist on some phones?AudioContext() 在某些手机上不存在?
【发布时间】:2014-04-10 01:30:54
【问题描述】:

我试图在三星 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 上,我得到“未捕获的类型错误:未定义不是函数”。

【问题讨论】:

    标签: android google-chrome html5-audio


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

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

      我在 SoundJS 工作,它可以让你构建在任何地方都可以使用的音频,如果你需要的话。

      希望对您有所帮助。

      【讨论】:

      • 谢谢。我今天来看看 SoundJS。
      猜你喜欢
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多