我们正在制作基于网络的音乐编辑器和基于Web Audio API的混音器。用户可以将多个轨道,裁剪轨道等混合在一起。轨道的实际混合仅涉及一次播放所有源。
我们希望能够添加选项以保存混音并使其可供下载到用户的计算机。有没有办法在前端执行此操作(如将所有源连接到一个目标/导出节点),甚至后端(我们使用的是RoR)?
答案 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>
可能不是你的方式,只是一个想法,但你的项目很有趣;)