我们正在基于 Web Audio api 制作基于 Web 的音乐编辑器和混音器。用户可以将多个轨道、裁剪轨道等混合在一起。轨道的实际混合只涉及一次播放所有源。
我们希望能够添加选项以保存混合并使其可下载到用户的计算机。有没有办法在前端(比如将所有源连接到一个目标/导出节点),甚至后端(我们正在使用 RoR)?
我们正在基于 Web Audio api 制作基于 Web 的音乐编辑器和混音器。用户可以将多个轨道、裁剪轨道等混合在一起。轨道的实际混合只涉及一次播放所有源。
我们希望能够添加选项以保存混合并使其可下载到用户的计算机。有没有办法在前端(比如将所有源连接到一个目标/导出节点),甚至后端(我们正在使用 RoR)?
RecorderJS 完全符合您的需求,而且使用起来再简单不过了。真的,真的很棒的图书馆。
https://github.com/mattdiamond/Recorderjs
PS 查看OfflineAudioContext
我对这个问题的回答(Web 音频 API:调度声音和导出混音),以获取有关对音频进行比实时更快的混音的信息。
用户数据看起来在客户端?
基本上,当使用 base64 将数据转换为 dataURI 时,数据是内联显示的,因此可以将它们 1 乘 1 加到一个单独的 blob 对象中,然后下载。
但是这种方法只适用于smalls文件,导致大多数浏览器崩溃和冻结,这仅适用于经过一些个人测试后小于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>
可能不是你的方式,只是一个想法,但你的项目很有趣;)