Javascript - 从 mp3 文件录制音频

标签 javascript mediarecorder mediastream

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

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

错误:

Uncaught DOMException: Failed to execute 'start' on 'MediaRecorder': The MediaRecorder cannot start becausethere are no audio or video tracks available.

我怎样才能做到这一点?

最佳答案

您需要play()该音频...(并等待它实际执行),否则您的流中没有任何内容可以录制。

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

});

关于Javascript - 从 mp3 文件录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59205952/

相关文章:

node.js - FFMPEG 仅执行一次 HTTP 范围请求 (HTML5 MediaStream/WebM)

javascript - 如何在 Javascript 中将音频缓冲区转换为 MP3?

javascript - 条形图中的提示未显示 html 特殊字符中包含的文本,例如 <cable>

android - MediaRecorder - 固件升级后代码停止工作

android - MediaRecorder 捕获的音频文件在使用 Retrofit 2 发送到服务器后损坏

android - 是否可以减少上下文切换时间

javascript - WordPress 自定义字段内容作为弹出窗口

javascript - polymer dom-if 不会在 dom-repeat 下重新标记计算条件

php - 将字符串变量插入 echo

reactjs - 使用 React Hook 时,来自 MediaRecorder 的中间数据丢失