首页 > 解决方案 > Javascript - 从 mp3 文件录制音频

问题描述

我想用来MediaRecorder录制现有的 mp3 文件。在调用 captureStream() 之后,我尝试将Audio元素作为源传递给MediaRecorder,但它不起作用。

new MediaRecorder(new Audio('./audio.mp3').captureStream(), {
    audioBitsPerSecond: 16000
});

错误:

未捕获的 DOMException:无法在“MediaRecorder”上执行“启动”:MediaRecorder 无法启动,因为没有可用的音频或视频轨道。

我怎样才能做到这一点?

标签: javascriptmediarecordermediastream

解决方案


您需要play()该音频...(并等待它确实如此),否则您的流中没有任何内容可以记录。

const aud = new Audio('./audio.mp3');
aud.play().then( () => {
  const stream = aud.captureStream();
  const recorder = new MediaRecorder(stream);
  recorder.ondataavailable = ...

});

推荐阅读