问题
我正在开发一个 Web 应用程序,用户可以在其中对音频样本进行排序,并可以选择将效果应用于他们使用 Web Audio API 创建的音乐模式。模式存储为 JSON 数据,我想对每个模式服务器端的渲染音频进行一些分析。据我所知,这给我留下了两个选择:
在服务器端运行我自己的渲染代码,尽量使其忠实于浏览器内的渲染。也许我什至可以从 Chromium 项目中提取 Web Audio 代码并对其进行修改,但这似乎可能需要大量工作。
在客户端进行渲染,希望比实时更快,然后将渲染的音频发送到服务器。这是理想的(和干燥的),因为只有一个引擎用于模式渲染。
可能的解决方案
这个问题将我引向Chromium 存储库中的这个代码示例,这似乎表明可以进行离线处理。诀窍似乎是webkitAudioContext
用一些参数构造 a (通常使用零参数构造函数)。以下是我对参数含义的猜测:
new webkitAudioContext(2, // channels
10 * 44100, // length in samples
44100); // sample rate
我稍微修改了示例,并在 Windows、Mac 和 Linux 上的 Chrome 23.0.1271.91 中对其进行了测试。 这是现场示例和结果(打开 Dev Tools Javascript 控制台以查看发生了什么):
- 麦克 -它的工作原理!
- Windows -失败 - SYNTAX_ERR:DOM 异常 12
- Linux -失败 - SYNTAX_ERR:DOM 异常 12
我上面描述的webkitAudioContext
构造函数会导致 Windows 和 Linux 上的异常。
我的问题
离线渲染对于我正在尝试做的事情来说是完美的,但我在任何地方都找不到文档,而且支持也不太理想。有没有人有这方面的更多信息?我应该期待很快在 Windows 和/或 Linux 中对此提供支持,还是应该期待在 Mac 上的支持很快消失?