Javascript 如何将多个Web音频源/曲目压缩为一个?

Javascript 如何将多个Web音频源/曲目压缩为一个?,javascript,google-chrome,audio,html5-audio,web-audio-api,Javascript,Google Chrome,Audio,Html5 Audio,Web Audio Api,我们正在制作一个基于web音频api的基于web的音乐编辑器和混音器。用户可以将多条音轨、裁剪音轨等混合在一起。实际的音轨混合只是一次播放所有音源 我们希望能够添加保存混音的选项,并将其下载到用户的计算机上。在前端(比如将所有源连接到一个目的地/导出节点)甚至后端(我们使用的是RoR),是否有某种方法可以做到这一点 用户数据似乎在客户端 基本上,当使用base64将数据转换为dataURI时,数据是以内联方式显示的,因此可以将它们逐个添加到一个blob对象中,然后下载 但这种方法只适用于小文件,

我们正在制作一个基于web音频api的基于web的音乐编辑器和混音器。用户可以将多条音轨、裁剪音轨等混合在一起。实际的音轨混合只是一次播放所有音源


我们希望能够添加保存混音的选项,并将其下载到用户的计算机上。在前端(比如将所有源连接到一个目的地/导出节点)甚至后端(我们使用的是RoR),是否有某种方法可以做到这一点

用户数据似乎在客户端

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

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

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


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

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


另外,请查看
OfflineAudioContext
和我对这个问题的回答(),了解如何更快地对音频进行实时合成。

当然可以在后端实现,但如果服务器不存在,您需要将混音数据和所有音频文件发送到服务器。太棒了,这正是我们需要的,而且我们似乎不需要修改太多现有的代码。谢谢你的帮助。直播怎么样?我可以在流中按1添加数据吗?
<a href="data:audio/ogg;base64,BASE64...BASE64..BASE64....>Download</a>