Ошибка: 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 (в моем случае это просто сработало)