7

我无法通过网络搜索找到任何东西,但是有没有计划制作一个 API 来生成要在 HTML5<audio>标签中播放的音频块?

编辑:这是示例::

PSEUDOCODE::
var music = new Song([Array of hertz levels or notes]);
var box = document.createElement('audio');
document.body.appendChild(box);
box.src = music.convert();
box.play();
4

2 回答 2

5

理论上,您现在实际上可以这样做——将音频元素的源属性设置为您在 JavaScript 中动态构建的数据 URI 。我已经使用embed元素和 MIDI 文件完成了这项工作,这些文件适用于安装了 QuickTime 或其他一些媒体助手的机器。

当然,问题是生成音频数据的计算量更大,并且占用更多空间(在某些情况下可能会违反数据 URL 大小限制......我想到了 IE 和 Mobile Safari)。因此,您将受限于小剪辑,并且您可能会受到audio标签的开始/停止时间的限制。

Mozilla 有一个他们正在开发的音频缓冲区 API ,它可以为浏览器带来真正的以编程方式生成的音频。但与此同时,它要么是数据 URI 黑客,要么是插件类型的东西,如 Flash(在版本 10 中获得了程序化音频缓冲区)或 Java。

还有一点需要注意的是:几个月前,我创建了一个JavaScript Audio 谷歌小组。那里还没有进行很多讨论,但是如果有足够多对浏览器上下文中的音乐/音频/声音感兴趣的人注册,我会很高兴,这样我们就可以达到临界质量并开始拥有像这样的主题的实际对话。

于 2010-08-13T19:06:06.903 回答
3

Mozilla 发布了一个音频数据 API,它可以在 Firefox 4 beta 和 Minefield nightlies 中运行:

https://wiki.mozilla.org/Audio_Data_API

http://vocamus.net/dave/?p=1148

据我了解,还有一个类似的 WebKit 项目。

W3C 音频孵化器小组已经成立——他们的任务是“探索启动一个或多个规范处理高级音频功能各个方面的可能性,包括读取和写入原始音频数据,以及合成声音或语音”。

http://www.w3.org/2005/Incubator/audio/

于 2010-10-12T14:02:24.873 回答