我试图在React中创建一个AudioWorklet。我正在使用create-react-app并将在React上下文之外工作的脚本导入到App.jsx中。它无法实例化我的AudioWorkletNode扩展并抛出以下错误:
Failed to compile.
./src/worklet/worklet-node.js
Line 2: 'AudioWorkletNode' is not defined no-undef
代码:
// The code in the main global scope.
class MyWorkletNode extends AudioWorkletNode {
constructor(context) {
super(context, 'my-worklet-processor');
}
}
let context = new AudioContext();
context.audioWorklet.addModule('processor.js').then(() => {
let node = new MyWorkletNode(context);
});
完全相同的代码是成功初始化AudioWorklet的,所以我对于为什么没有识别AudioWorkletNode感到有些困惑。
答案 0 :(得分:3)
创建React App配置为强制您使用window.
限定符访问此类浏览器API。通过这种方式,您可以清楚地了解全局,并且不会忘记导入某些内容(这是非常常见的)。
这应该有效:
class MyWorkletNode extends window.AudioWorkletNode {