【问题标题】:Node.js - Having Node.js/Express work with Web Audio APINode.js - 让 Node.js/Express 与 Web 音频 API 一起工作
【发布时间】:2017-02-13 11:58:04
【问题描述】:

我正在编写一个需要使用 Web 音频 API 的 Node.js/Express。我注意到由于stackoverflow answer 中解释的原因,这实际上是“不可能的”。但是,我在网上找到了两个在我看来使用 Node.js/Express 以及 Web Audio API 的项目。可以在 herehere 找到它们。当我尝试在我的应用程序中做类似的事情时(使用npm start 运行,我收到以下错误:

/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 的工作原理。

有人可以向我解释一下这两个项目是如何设法将 Web Audio API 与 Node.js/Express 一起使用的,而当我尝试在我的项目中实现类似的东西时却失败了?

提前致谢。

【问题讨论】:

    标签: javascript node.js express audio web-audio-api


    【解决方案1】:

    Web Audio API 在浏览器端,融入现代浏览器,没有显式引入任何库。当然 nodejs 是服务器端,因此您需要编写自己的或发现有人移植了 Web Audio API 的节点包,使用它的 published specs,直接在nodejs平台上使用,也就是说,如果你想要一个独立的基于nodejs服务器的音频渲染项目,独立于任何浏览器。 SO answer you refer to 提到了 npm module using this approach

    您当然可以将系统设计为仅互连服务器和浏览器,这在今天是非常可行的,也是大多数人在将节点与音频相结合时采用的路线。

    你还没有说清楚你喜欢哪种架构???

    nodejs 当然可以在任一架构中与 Web Audio API 一起使用,我已经使用每种方法编写了项目

    我猜你上面的错误是试图执行不与浏览器对话的服务器端代码?在这种情况下,请确保您正在引入 nodejs 移植的 Web 音频 API 库

    【讨论】:

    • 感谢斯科特的回复。您对我的错误完全正确,我试图从服务器端代码执行 Web Audio API 代码。在使用 NodeJS 时,我对服务器端和客户端感到困惑,因为我是新手。我现在已经更正了我的程序,并且正在从客户端使用 Web Audio API(和 Tone.js),它可以正常工作。
    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多