Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于狩猎的音频背景_Javascript_Webkitaudiocontext - Fatal编程技术网

Javascript 关于狩猎的音频背景

Javascript 关于狩猎的音频背景,javascript,webkitaudiocontext,Javascript,Webkitaudiocontext,昨天,我有。 我现在在这个AudioContext对象上彻底改变了自己。 以下是我在我的桌面上的Safari中尝试的内容及其相关的错误消息: var-ctx //ctx=新(AudioContext | | webkitAudioContext);//ReferenceError:找不到变量:AudioContext //ctx=新(audioContext | | webkitAudioContext);//ReferenceError:找不到变量:audioContext //ctx=ne

昨天,我有。 我现在在这个AudioContext对象上彻底改变了自己。 以下是我在我的桌面上的Safari中尝试的内容及其相关的错误消息:

var-ctx
//ctx=新(AudioContext | | webkitAudioContext);//ReferenceError:找不到变量:AudioContext
//ctx=新(audioContext | | webkitAudioContext);//ReferenceError:找不到变量:audioContext
//ctx=new(window.AudioContext | | webkitadiocontext);//ReferenceError:找不到变量:webkitAudioContext
ctx=new(window.AudioContext | | window.webkitadiocontext);
//TypeError:“undefined”不是构造函数(计算“new(window.AudioContext | | window.webkitAudioContext)”)
浏览器支持限制 并非所有浏览器都支持(id est
AudioContext
)。有些浏览器的前缀可能是供应商的前缀,但较旧的浏览器根本不支持它。因此,要回答您的问题:您不能在所有浏览器上使用
AudioContext

尽管如此,您仍然可以使用功能检测在受支持的浏览器上使用Web Audio API(请参见下文),或者仅检查您的浏览器是否支持它。查看并找到您的Safari版本:此网站会告诉您该功能是否可用,如果有前缀,您必须使用哪个前缀

AudioContext
功能检测 为确保您可以在任何支持Web Audio API的浏览器上使用该API,您可以使用功能检测,并对供应商前缀对象进行相关回退。如果不支持
AudioContext
对象,您将停止脚本的执行并提醒用户。下面是一个例子:

var AudioContext = window.AudioContext // Default
    || window.webkitAudioContext // Safari and old versions of Chrome
    || false; 

if (AudioContext) {
    // Do whatever you want using the Web Audio API
    var ctx = new AudioContext;
    // ...
} else {
    // Web Audio API is not supported
    // Alert the user
    alert("Sorry, but the Web Audio API is not supported by your browser. Please, consider upgrading to the latest version or downloading Google Chrome or Mozilla Firefox");
}

请注意,到目前为止,
webkit
是唯一以
AudioContext
为前缀的现有供应商,因为Mozilla和Opera使用常规的非固定对象,IE还不支持Web音频API。

我想我不能接受“否”作为答案。也许我应该更仔细地回答我的问题:这样它就可以在内置了它的浏览器上工作。最新稳定的Chrome浏览器:“webkitAudioContext”被弃用。请改用“AudioContext”。。在所有主要的现代浏览器中,AudioContext现在似乎都没有前缀了。对Safari一无所知,因为Windows版本从那时起就没有更新过2012@bryc这并不意味着什么,旧版本的浏览器仍然需要前缀。当然,它意味着什么,它意味着API正在迅速成为标准。这意味着不推荐使用的方法(如
noteOn
createJavaScriptNode
或Firefox的音频数据API)中的代码更少。有很多坏的WebAudio代码。只有OS X上的Safari保留了webkit前缀,我相信当他们发布新版本的OS X(??)时,该前缀将被更新。我遵循上的第一个示例,得到了“此浏览器不支持Web音频API”。这很有趣。我的帮助说我是Safari 5.1.7…是的,Safari仅在6.1或更高版本上支持Web音频API。表示最新版本为5.1.7,仅适用于Safari for Windows和Mac OS X(或更低版本)。在Mac OS Mountain Lion上,受支持的Safari版本最高为6,在Mavericks上为7,在Yosemite上为8(最新版本)。虽然此代码可能会解决OP的问题,但最好包含关于代码如何解决OP问题的解释。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或使用源文档补充说明。如果您使用的是TypeScript,则最好在项目的根目录下添加
webkitAudioContext
的声明,而不是求助于
any
。我正在当前项目的
declaration.d.ts
文件中使用
界面窗口{webkitAudioContext:typeof AudioContext}
  var AudioContext = window.AudioContext // Default
      || (window as any).webkitAudioContext;// Safari and old versions of Chrome

    this.audioContext = new AudioContext();