Safari 上的 AudioContext
AudioContext on Safari
昨天,我 。
现在,我已经完全了解这个 AudioContext 对象。
以下是我在桌面上的 Safari 中尝试过的方法及其相关的错误消息:
var ctx
// ctx = new(AudioContext || webkitAudioContext); // ReferenceError: Can't find variable: AudioContext
// ctx = new(audioContext || webkitAudioContext); // ReferenceError: Can't find variable: audioContext
// ctx = new(window.AudioContext || webkitAudioContext); // ReferenceError: Can't find variable: webkitAudioContext
ctx = new(window.AudioContext || window.webkitAudioContext);
// TypeError: 'undefined' is not a constructor (evaluating 'new(window.AudioContext || window.webkitAudioContext)')
问:如何定义 myAudioContext 使其适用于所有浏览器?
浏览器支持限制
并非所有浏览器都支持 Web Audio API (id est AudioContext
)。某些浏览器可能会以其供应商前缀作为前缀,但较旧的浏览器根本不支持它。因此,回答你的问题:你不能在所有浏览器上使用AudioContext
。
尽管如此,您仍然可以使用功能检测(见下文)在支持的浏览器上使用网络音频 API,或者只检查您的浏览器是否支持它 here。查看并找到您的 Safari 版本:此站点会告诉您该功能是否可用,如果有前缀,您必须使用哪个前缀。
AudioContext
特征检测
为了确保您可以在任何支持它的浏览器上使用网络音频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 不支持网络音频 API 尚未。
var AudioContext = window.AudioContext // Default
|| (window as any).webkitAudioContext;// Safari and old versions of Chrome
this.audioContext = new AudioContext();
昨天,我
var ctx
// ctx = new(AudioContext || webkitAudioContext); // ReferenceError: Can't find variable: AudioContext
// ctx = new(audioContext || webkitAudioContext); // ReferenceError: Can't find variable: audioContext
// ctx = new(window.AudioContext || webkitAudioContext); // ReferenceError: Can't find variable: webkitAudioContext
ctx = new(window.AudioContext || window.webkitAudioContext);
// TypeError: 'undefined' is not a constructor (evaluating 'new(window.AudioContext || window.webkitAudioContext)')
问:如何定义 myAudioContext 使其适用于所有浏览器?
浏览器支持限制
并非所有浏览器都支持 Web Audio API (id est AudioContext
)。某些浏览器可能会以其供应商前缀作为前缀,但较旧的浏览器根本不支持它。因此,回答你的问题:你不能在所有浏览器上使用AudioContext
。
尽管如此,您仍然可以使用功能检测(见下文)在支持的浏览器上使用网络音频 API,或者只检查您的浏览器是否支持它 here。查看并找到您的 Safari 版本:此站点会告诉您该功能是否可用,如果有前缀,您必须使用哪个前缀。
AudioContext
特征检测
为了确保您可以在任何支持它的浏览器上使用网络音频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 不支持网络音频 API 尚未。
var AudioContext = window.AudioContext // Default
|| (window as any).webkitAudioContext;// Safari and old versions of Chrome
this.audioContext = new AudioContext();