2010-08-13 351 views
7

我无法通过网络搜索找到任何东西,但是有没有计划使API生成音频块以便在HTML5 <audio>标记中播放?使用Javascript创建音频<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(); 

回答

5

在理论上,你可以真正做到这一点现在 - 设置为data URI,你建立在你的JavaScript动态音频元素的源属性。我已经用embed元素和MIDI文件完成了这个工作,它可以在安装有QuickTime或其他媒体助手的机器上工作。

当然,产生这种情况的原因是生成音频数据的计算量更大,占用更多空间(在某些情况下可能会违反数据URL大小限制...... IE和Mobile Safari会心神)。所以您只能使用小剪辑,并且您可能会受到audio标记的开始/停止时间的限制。

Mozilla有一个audio buffer API他们正在努力,这可能会给浏览器带来真正的编程生成音频。与此同时,它不是数据URI黑客,就是像Flash那样的插件类型(它在版本10中有一个编程音频缓冲区)或Java。

还有一点需要注意:几个月前我开始了JavaScript Audio google group。目前还没有很多讨论,但如果有足够多的人对浏览器中的音乐/音频/声音感兴趣,那么我们就会喜欢它,这样我们就可以达到临界质量并开始就像这样的话题的实际对话。

+1

基于Web Audio API最近的一篇文章:http://www.html5rocks.com/en/tutorials/webaudio/games/ – mwcz 2012-03-21 03:00:57

3

的Mozilla已经发布了一个音频数据API,它在Firefox 4测试版和井田工程Nightlies版:

https://wiki.mozilla.org/Audio_Data_API

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

据我所知,也有一个类似的WebKit项目。

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

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