Ошибка: AudioWorkletNode не определен в приложении React

Я пытаюсь создать AudioWorklet в React. Я использую create-React ion-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 не распознается.

2 ответа

Приложение Create React настроено для обеспечения доступа к API-интерфейсам браузера, подобным этому, с помощью window. Классификатор. Таким образом, становится ясно, что вы используете глобальную переменную и не забыли импортировать что-то (что очень часто встречается).

Это должно работать:

class MyWorkletNode extends window.AudioWorkletNode {

я использовал@types/audioworkletполучить правильные определения

npm i -D @types/audioworklet

Проверьте README, если вам нужны дополнительные шаги по настройке, чтобы правильно подключить его в tsconfig.json (в моем случае это просто сработало)

Другие вопросы по тегам