Javascript 如何将音频缓冲区转换为mp3文件?

Javascript 如何将音频缓冲区转换为mp3文件?,javascript,web-audio-api,audio-processing,audiobuffer,Javascript,Web Audio Api,Audio Processing,Audiobuffer,是否有一种简单的方法可以做到这一点,或者我是否需要交错通道并创建一个包含特定头格式以及交错数据的DataView 目前,这在web平台上是不可能的。我们希望彻底检查解码和编码原语,使它们既能实时工作(如今天的MediaRecorder),又能脱机工作(例如,对脱机音频上下文进行编码)。我们甚至还没有开始对此进行标准化,我们正在完成Web音频API 然而,多亏了emscripten,不管怎样都很容易做到,使用编译成wasm的javascript的libmp3lame版本,例如 我建议您使用getC

是否有一种简单的方法可以做到这一点,或者我是否需要交错通道并创建一个包含特定头格式以及交错数据的
DataView

目前,这在web平台上是不可能的。我们希望彻底检查解码和编码原语,使它们既能实时工作(如今天的MediaRecorder),又能脱机工作(例如,对脱机音频上下文进行编码)。我们甚至还没有开始对此进行标准化,我们正在完成Web音频API

然而,多亏了emscripten,不管怎样都很容易做到,使用编译成
wasm
的javascript的
libmp3lame
版本,例如


我建议您使用
getChannelData(channelIndex)
,从
AudioBuffer
获取
ArrayBuffer
,将其传输到web工作程序(无需复制,因此速度很快),并在完成后将编码的blob发回主线程

是否需要专门创建
.mp3
文件?我在Github上尝试过该项目,但速度非常慢,尤其是在移动设备上。你可能会认为,如果你在音频上下文中有一个解码方法,那么就有一个编码方法,这是很自然的。它是一个用Javascript编写的MP3编码器(因此没有wasm,这对我来说导致它因为虚拟内存问题而中止):