Почему API Web Audio не поддерживается в nodejs?

Я понимаю, что Web Audio API - это клиентская функция, но nodejs основана на реализации клиентской версии V8 на ECMAScript, которая включает Web Audio API.
Почему в nodejs нет полной поддержки API веб-аудио?
Это потому, что AudioContext основан на глобальном объекте окна?
Я пропустил здесь пункт?
Есть ли план, чтобы сделать его доступным в будущем?

Ответ 1

Node.js не поддерживает Web Audio, потому что он не является частью самого языка JavaScript - это отдельный API JavaScript веб-платформы.

Вы можете думать об этом как о Web Workers, requestAnimationFrame или XMLHttpRequest - они являются частью JavaScript-среды браузера, но не обязательно имеют смысл для других сред выполнения.

V8 - это общий движок JavaScript; он не включает в себя функции веб-платформы. Это одна из причин, по которой Node.js может его использовать. Реализация Web Audio в Chrome является частью Blink, движка рендеринга.

Модуль web-audio-api npm предназначен для реализации Web Audio для Node.js.

Ответ 2

Очевидно, было бы нелогично использовать неблокирующую платформу, а затем саботировать ее основную функцию с помощью процесса, который лучше оставить клиентскому процессору для анализа - зачем платить 100 000 пользователей аудио, когда 100 000 пользователей уже заплатили для последнего процессора, который ничего не делает на самом деле...

ОДНАКО, возможно, будет полезно хранить элементы интеллектуальной собственности на вашем бэкэнде - формы сигналов и алгоритмы определенных аудио узлов, которые были разработаны с большими затратами, но их очень легко скопировать, если бы они были на стороне клиента.... тогда это будет имеет смысл сохранить этот компонент на стороне сервера (но будет ли это решение узла или нет, это еще один аргумент)