我们正在基于Web Audio API开发一个基于网络的音乐编辑和混音器。用户可以混合多个音轨,裁剪音轨等。实际的音轨混合只涉及同时播放所有来源。
我们希望能够添加保存混合并将其提供给用户下载的选项。是否有一种方法可以在前端(例如连接所有源到一个目标/导出节点)或后端(我们使用RoR)上实现此功能?
我们希望能够添加保存混合并将其提供给用户下载的选项。是否有一种方法可以在前端(例如连接所有源到一个目标/导出节点)或后端(我们使用RoR)上实现此功能?
RecorderJS正好满足您的需求,而且使用起来非常容易。真的非常棒的库。
https://github.com/mattdiamond/Recorderjs
P.S. 请参考OfflineAudioContext
和我对这个问题的回答(Web audio API:调度声音和导出混音)以获取有关如何进行快于实时的混音的信息。
用户数据似乎在客户端上?
基本上,将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>