我刚刚开始使用 Web Audio API。我仔细阅读了 API 文档并看到了几个示例。我的问题可能很微不足道,我可能错过了一些基本的东西。
我有下面的工作人员 javascript 文件。它来自一个我放错了网址的示例。我正在使用 PyCharm 作为我的 IDE,如果这很重要的话,它会将“AudioWorkletProcessor”标记为未定义。此时我已经查看了很多页面,但没有看到任何可能定义此接口的 import 或 require 语句。
我刚刚尝试在 Firefox 和 Chrome 中运行代码,并且都在未定义的
AudioWorkletProcessor
行上抛出异常。
这应该是“内置”吗?它是我还没有看到引用的库/模块的一部分吗?
class AudioRecorder extends AudioWorkletProcessor {
static get parameterDescriptors() {
return [
{
name: 'isRecording',
defaultValue: 0,
minValue: 0,
maxValue: 1,
},
]
}
process(inputs, outputs, parameters) {
const buffer = []
const channel = 0
for (let t = 0; t < inputs[0][channel].length; t += 1) {
if (parameters.isRecording[0] === 1) { // <2>
buffer.push(inputs[0][channel][t])
}
}
if (buffer.length >= 1) {
this.port.postMessage({buffer})
}
return true
}
}
registerProcessor('audio-recorder', AudioRecorder)
AudioWorkletProcessor
基类和registerProcessor()
函数都可以在AudioWorkletGlobalScope
中作为全局变量使用。
无法在控制台中评估该代码。您需要像这样加载 JavaScript 文件:
audioContext.audioWorklet.addModule('path/to/your/file.js');
我猜你的 IDE 只是不知道你正在编辑一些本应在该范围内进行评估的内容。
可以给我你的编辑代码吗?