javascript - Javascript - 从 mp3 文件录制音频
问题描述
我想用来MediaRecorder
录制现有的 mp3 文件。在调用 captureStream() 之后,我尝试将Audio
元素作为源传递给MediaRecorder
,但它不起作用。
new MediaRecorder(new Audio('./audio.mp3').captureStream(), {
audioBitsPerSecond: 16000
});
错误:
未捕获的 DOMException:无法在“MediaRecorder”上执行“启动”:MediaRecorder 无法启动,因为没有可用的音频或视频轨道。
我怎样才能做到这一点?
解决方案
您需要play()
该音频...(并等待它确实如此),否则您的流中没有任何内容可以记录。
const aud = new Audio('./audio.mp3');
aud.play().then( () => {
const stream = aud.captureStream();
const recorder = new MediaRecorder(stream);
recorder.ondataavailable = ...
});
推荐阅读
- javascript - 如何在 IE11 中为 HTML 表格实现粘性标题?
- c# - 如何从字符串中获取int的名称
- zone - 使用 Google Cloud AI Platform - 错误消息“区域没有足够的资源来满足请求”
- java - 通过 WSDL 策略声明生成 WSS 代码
- wcf - 无法在 BizTalk 2016 中配置 WCF-SQL 适配器
- amazon-web-services - SQS批次中的所有消息是否在达到最大redrive(Retry)策略数后都发送到Dead Letter Queue
- flutter - 有没有办法通过 rtmps 在颤振或本机应用程序中观看 Facebook 直播?
- gradle - 使 Gradle 任务对前一个任务的结果进行操作
- amazon-web-services - 针对 AWS 和 Azure 的应用程序的单一代码库,用于传递服务,例如服务总线、blob、SQS/SNS 等
- php - 是否可以在表中运行两个单独的查询?