是否有一种简单的方法,还是需要对通道进行交织并创建一个包含特定标头格式以及交织数据的DataView

最佳答案

目前,这在Web平台上是不可能的。我们想对解码和编码原语进行大修,以便它们既可以实时(如今天的MediaRecorder)也可以离线(例如,对OfflineAudioContext进行编码)工作。我们甚至还没有开始对此进行标准化,我们正在努力完善Web Audio API。

但是,由于有了emscripten,无论使用编译为libmp3lame的javascript的wasm版本(例如https://github.com/higuma/mp3-lame-encoder-js)还是很容易做到的。

我建议您使用ArrayBuffer从您的AudioBuffer中获取getChannelData(channelIndex),将其传输到网络工作者(无需复制,因此非常快),并在完成后将编码的blob发送回主线程。

09-18 19:03