【问题标题】:How do I determine which AudioContext constructor to use in Safari?如何确定在 Safari 中使用哪个 AudioContext 构造函数?
【发布时间】:2015-02-06 22:31:59
【问题描述】:

我正在使用 HTML5 网络音频 API,我正在尝试通过动态确定要使用的 AudioContext 构造函数

var constructor = AudioContext || webkitAudioContext;
var context = new constructor();

但是,使用此代码,Safari 会打趣:

ReferenceError: Can't find variable: AudioContext

对于初学者,我什至不知道 ReferenceErrors 存在于 javascript 中,因为未定义的变量默认采用 undefined 值。 Safari 的 javascript 实现显然与 Chrome 有很大的不同,尽管两者都使用 webkit 引擎......

如何确定使用哪个构造函数而不触发此错误?

【问题讨论】:

    标签: javascript safari web-audio-api


    【解决方案1】:

    改用 window.AudioContext。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @DLeh,答案是正确的。它没有说明错误的原因,但它说明了如何避免它。原因是未定义的变量引用与未定义的对象属性不同。此行为不是 Safari 特有的。
    • 谢谢! window.AudioContext || window.webkitAudioContext; 工作。
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2011-06-26
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    相关资源
    最近更新 更多