2017-02-13 3 views
1

Я программирую Node.js/Express, который требует использования API веб-аудио. Я заметил, что это невозможно «невозможно» из-за причин, объясняемых в этом stackoverflow answer. Тем не менее, я нашел два онлайн-проекта, которые, как мне кажется, используют Node.js/Express, а также API веб-аудио. Их можно найти here и here. Когда я пытаюсь сделать что-то подобное в моем приложении (работает с использованием npm start я получаю следующее сообщение об ошибке:Node.js - Работа с Node.js/Express с API веб-аудио

/Users/user/Documents/STAGE4/PRCO304/RTMC/controllers/workstation/workstation.js:1 
(function (exports, require, module, __filename, __dirname) { var context = new AudioContext(); 
                       ^

ReferenceError: AudioContext is not defined 

Когда я изменить линию var context = new AudioContext(); к чему-то вроде window.AudioContext = window.AudioContext я получаю ошибку, что window не определено, что Я понимаю, как работает Node.js.

Может ли кто-нибудь объяснить мне, как обоим этим проектам удается использовать API веб-аудио с помощью Node.js/Express, где, когда я пытаюсь реализовать что-то подобное у меня, это не удается?

Заранее благодарен

ответ

1

Web Audio API находится на стороне браузера, запеченный в современных браузерах. В библиотеку явно не вложена библиотека. Конечно, nodejs является серверной, поэтому вам нужно будет написать свой собственный или открыть пакет узлов, где кто-то портировал веб-аудио API, используя его published specs, для использования непосредственно на платформе nodejs, то есть если вы хотите создать автономный проект рендеринга на основе сервера nodejs, независимо от любого браузера. SO answer you refer to упоминает a npm module using this approach

Возможно, вы могли бы разработать систему, чтобы просто соединиться как с сервером, так и с браузером, который сегодня очень полезен, и маршрут, который большинство людей принимает при объединении узла со звуком.

Вы не определили, какую архитектуру вы предпочитаете ???

nodejs, безусловно, может быть использован с Web Audio API в любой архитектуре, и я написал проекты с использованием каждого подхода

Ваша ошибка выше, я бы предположил, пытается выполнить код на стороне сервера, который не разговаривает с браузером? В этом случае убедитесь, что вы потянули в библиотеку API Web Audio API с portjs

+1

Спасибо за ответ Скотт. Вы были совершенно правы с моей ошибкой, я пытался выполнить код API Web Audio из кода на стороне сервера. Я запутался между серверной и клиентской стороной при работе с NodeJS, поскольку я новичок в этом. Теперь я исправил свою программу и использую Web Audio API (и Tone.js) со стороны клиента и работает по своему желанию. –