错误:AudioWorkletNode 在 React 应用程序中未定义

blo*_*510 1 webrtc reactjs scriptprocessor web-audio-api

我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)

代码:

 // 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);
      });
Run Code Online (Sandbox Code Playgroud)

同样的代码成功初始化了 AudioWorklet,所以我有点困惑为什么 AudioWorkletNode 没有被识别。

Dan*_*mov 5

Create React App 配置为强制您使用限定符访问此类浏览器 API window.。这样很明显您正在使用全局,并且没有忘记导入某些内容(这很常见)。

这应该有效:

class MyWorkletNode extends window.AudioWorkletNode {
Run Code Online (Sandbox Code Playgroud)

  • 您好,从 2020 年开始,更改为“window.AudioWorkletNode”后,得到:“TypeError: Class extends value undefined is not a constructor or null” (2认同)