为什么 nodejs 不支持网络音频 API?
Why Web Audio API isn't supported in nodejs?
我了解Web Audio API 是客户端功能,但 nodejs 基于 V8 Chrome ECMAScript 的客户端实现,其中包括 网络音频API.
为什么nodejs没有完全支持Web Audio API?
是不是因为AudioContext是基于全局的window对象?
我在这里漏掉了一点吗?
是否有计划在未来提供它?
Node.js 不支持网络音频,因为它不是 JavaScript language itself - it's a separate web platform JavaScript API 的一部分。
你可以把它想象成 Web Worker,requestAnimationFrame
或 XMLHttpRequest
- 它们是浏览器 JavaScript 环境的一部分,但它们不一定对其他运行时有意义.
V8 是一个通用的 JavaScript 引擎;它不包括网络平台功能。这就是 Node.js 能够使用它的原因之一。 Chrome's implementation of Web Audio 是渲染引擎 Blink 的一部分。
web-audio-api npm 模块旨在为 Node.js 实现网络音频。
Web Audio API (WAA) 未在 NodeJS 中实现的原因基本上是一个设计决策。 AudioContext
是 window
的一部分这一事实与它无关。例如,console
是 window
接口的一部分,但在“node-core”中。
WAA 不是 ECMAScript 规范的一部分这一事实也不足以解释为什么 WAA 不在节点核心中。例如 HTTP2、web crypto API、setInterval(),... 不在 ECMAScript 规范中,但在节点核心中。
什么应该在节点核心,什么应该在用户空间(意思是不在节点核心)之间没有明确的界限。但总的来说,NodeJS 更喜欢在用户空间中保持其标准库较小,expirements new API。您可以阅读这篇文章,其中更深入地讨论了这一点 (see)。
我们应该在不久的将来在节点核心中看到 WAA 吗?可能不会(see issue #64546),但不代表不可能
我应该补充一点,音频编程的可移植性不是一件容易的事,这肯定部分解释了为什么 NodeJS 维护者不急于在核心中实现 WAA。
我了解Web Audio API 是客户端功能,但 nodejs 基于 V8 Chrome ECMAScript 的客户端实现,其中包括 网络音频API.
为什么nodejs没有完全支持Web Audio API?
是不是因为AudioContext是基于全局的window对象?
我在这里漏掉了一点吗?
是否有计划在未来提供它?
Node.js 不支持网络音频,因为它不是 JavaScript language itself - it's a separate web platform JavaScript API 的一部分。
你可以把它想象成 Web Worker,requestAnimationFrame
或 XMLHttpRequest
- 它们是浏览器 JavaScript 环境的一部分,但它们不一定对其他运行时有意义.
V8 是一个通用的 JavaScript 引擎;它不包括网络平台功能。这就是 Node.js 能够使用它的原因之一。 Chrome's implementation of Web Audio 是渲染引擎 Blink 的一部分。
web-audio-api npm 模块旨在为 Node.js 实现网络音频。
Web Audio API (WAA) 未在 NodeJS 中实现的原因基本上是一个设计决策。 AudioContext
是 window
的一部分这一事实与它无关。例如,console
是 window
接口的一部分,但在“node-core”中。
WAA 不是 ECMAScript 规范的一部分这一事实也不足以解释为什么 WAA 不在节点核心中。例如 HTTP2、web crypto API、setInterval(),... 不在 ECMAScript 规范中,但在节点核心中。
什么应该在节点核心,什么应该在用户空间(意思是不在节点核心)之间没有明确的界限。但总的来说,NodeJS 更喜欢在用户空间中保持其标准库较小,expirements new API。您可以阅读这篇文章,其中更深入地讨论了这一点 (see)。
我们应该在不久的将来在节点核心中看到 WAA 吗?可能不会(see issue #64546),但不代表不可能
我应该补充一点,音频编程的可移植性不是一件容易的事,这肯定部分解释了为什么 NodeJS 维护者不急于在核心中实现 WAA。