【发布时间】:2019-07-28 00:06:10
【问题描述】:
我正在使用网络音频 API 将音频流式传输到我的远程服务器。我正在使用离线音频上下文。该代码在 chrome 和 firefox 中运行良好,但在 safari 中,尝试使用 OfflineAudioContext 时会出现上述错误。我尝试将 webkit 前缀添加到 OfflineAudioContext,然后它给了我这个错误:
SyntaxError:字符串与预期的模式不匹配。
我尝试向 OfflineAudioContext 构造函数添加不同的值,但它总是给我同样的错误。
我浏览了 Mozilla 开发者页面以了解浏览器的兼容性,我发现了这个:
所以,这里提到对于 OfflineAudioContext 构造函数,edge 和 safari 的兼容性是未知的。那么,这就是为什么我无法在 Safari 中使用 OfflineAudioContext 的原因吗?还不支持吗?还是我做错了?或者在 safari 中是否有其他方法可以解决这个问题?
这是我第一次使用 Web Audio API。所以,如果我错过了某个地方,我希望有人能解决我的疑问。谢谢。
下面添加了OfflineAudioContext的代码:
let sourceAudioBuffer = e.inputBuffer; // directly received by the audioprocess event from the microphone in the browser
let TARGET_SAMPLE_RATE = 16000;
let OfflineAudioContext =
window.OfflineAudioContext || window.webkitOfflineAudioContext;
let offlineCtx = new OfflineAudioContext(
sourceAudioBuffer.numberOfChannels,
sourceAudioBuffer.duration *
sourceAudioBuffer.numberOfChannels *
TARGET_SAMPLE_RATE,
TARGET_SAMPLE_RATE
);
(如果需要更多的js文件代码来更好地了解问题。只需评论它。我会添加,但我认为sn-p足以理解问题)
【问题讨论】:
-
@DarrenSweeney 它不是重复的。请参阅两者中的问题上下文。在发布此问题之前,我已经浏览了该链接。
标签: javascript web web-audio-api