如何将多个Web音频源/轨道压缩为一个?

时间:2013-06-18 01:43:24

标签: javascript google-chrome audio html5-audio web-audio

我们正在制作基于网络的音乐编辑器和基于Web Audio API的混音器。用户可以将多个轨道,裁剪轨道等混合在一起。轨道的实际混合仅涉及一次播放所有源。

我们希望能够添加选项以保存混音并使其可供下载到用户的计算机。有没有办法在前端执行此操作(如将所有源连接到一个目标/导出节点),甚至后端(我们使用的是RoR)?

2 个答案:

答案 0 :(得分:3)

RecorderJS正是您所需要的,它可能不太容易使用。真的,非常棒的图书馆。

https://github.com/mattdiamond/Recorderjs

P.S。查看OfflineAudioContext以及我对此问题的回答(Web audio API: scheduling sounds and exporting the mix),了解有关对音频执行速度快于实时混音的信息。

答案 1 :(得分:0)

用户数据看起来是客户端的吗?

基本上,当使用base64将数据转换为dataURI时,数据会内联显示,因此它们可以逐个添加到一个blob对象中,然后下载。

但是这种方法只适用于小文件,导致大多数浏览器崩溃和冻结,这只适用于经过一些人体测试后小于10mb的blob大小,这肯定会很快好转。

<audio controls><source src="data:audio/ogg;base64,BASE64.......BASE564......BASE64............."></audio>

<a href="data:audio/ogg;base64,BASE64...BASE64..BASE64....>Download</a>

可能不是你的方式,只是一个想法,但你的项目很有趣;)