在浏览器中保存 Blob 的持续时间

Rya*_*ure 8 javascript audio blob file wav

我正在使用window.MediaRecorder录制wav音频文件,然后将其上传到 S3。我将数据块保存到一个数组中,然后在记录完成后用它们创建一个Blob。这工作正常,我在录制或播放文件时没有问题。但是,我终生无法弄清楚如何设置生成的 Blob 文件的持续时间。

每当我在本地下载文件或将其上传到 s3 时,任何地方都没有持续时间元数据。我将音频的持续时间保存为用户记录,但无法有效地将其附加到音频文件中。我觉得应该有一个微不足道的解决方案,但我刚刚花了几个小时搜索,似乎找不到任何关于此的内容。它必须是可能的,所以我错过了什么?

cr1*_*ng3 7

也许您已经找到了解决方案,但我将其发布给对此感兴趣的其他人查看。

您可以使用MediaRecorder.onstartonstop事件。

  1. 当 MediaRecorder 的 onstart 事件被触发时,您需要使用 Date.now() 之类的方法获取当前日期。
  2. 当 onstop 事件被触发时,也获取当前日期。
  3. 您需要减去这两个日期才能获得录制音频的持续时间。

参考: