首页 > 解决方案 > 如何将音频 blob 拆分为更小的音频 blob 并使每个 blob 可播放

问题描述

我正在使用MediaRecorderapi 来录制音频。用户可以触发一个事件,该事件将依次调用该MediaRecorder.requestData方法。我遇到的问题是只有第一个 Blob 是可玩的,我需要所有 Blob 都是可玩的。

我在 W3 规范中读到这是预期的功能:

UA 必须以这样一种方式记录流,以便在播放时可以检索到原始音轨。当返回多个 Blob 时(由于时间片或 requestData()),单个 Blob 不必是可播放的,但来自已完成录制的所有 Blob 的组合必须是可播放的。

我想知道 Blob 对象中实际上缺少哪些数据,我是否可以手动附加丢失的数据以使 Blob 可播放。

我无法创建新MediaRecorder实例,因为在创建新实例并开始录制时它可能会错过用户的录制,我需要能够在服务器中存储单个音频文件。

总而言之,我需要能够将单个音频 Blob 拆分为多个 Blob,并手动插入使每个 Blob 可播放所需的数据,然后将所有 Blob 重新组合成一个 Blob 并重新上传到服务器。

谢谢

标签: javascriptweb-audio-apiweb-mediarecorder

解决方案


推荐阅读