如何将 AudioBuffer 转换为 mp3 文件?
How to convert an AudioBuffer to a mp3 file?
有没有一种简单的方法可以做到这一点,或者我是否需要交错通道并创建一个包含特定 header 格式以及交错数据的 DataView
?
目前,这在网络平台上是不可能的。我们想要彻底改造解码和编码原语,以便它们既可以实时工作(比如今天的 MediaRecorder
),也可以离线工作(比如,编码一个 OfflineAudioContext
)。我们甚至还没有开始标准化,我们正在努力完成网络音频 API。
但是,多亏了 emscripten,无论如何都可以轻松做到,使用编译为 wasm
的 javascript 的 libmp3lame
版本,例如 https://github.com/higuma/mp3-lame-encoder-js。
我建议从您的 AudioBuffer
获取 ArrayBuffer
s,使用 getChannelData(channelIndex)
,将其传输给网络工作者(无需复制,因此速度很快),然后 post 完成后将编码的 blob 返回到主线程。
有没有一种简单的方法可以做到这一点,或者我是否需要交错通道并创建一个包含特定 header 格式以及交错数据的 DataView
?
目前,这在网络平台上是不可能的。我们想要彻底改造解码和编码原语,以便它们既可以实时工作(比如今天的 MediaRecorder
),也可以离线工作(比如,编码一个 OfflineAudioContext
)。我们甚至还没有开始标准化,我们正在努力完成网络音频 API。
但是,多亏了 emscripten,无论如何都可以轻松做到,使用编译为 wasm
的 javascript 的 libmp3lame
版本,例如 https://github.com/higuma/mp3-lame-encoder-js。
我建议从您的 AudioBuffer
获取 ArrayBuffer
s,使用 getChannelData(channelIndex)
,将其传输给网络工作者(无需复制,因此速度很快),然后 post 完成后将编码的 blob 返回到主线程。