【发布时间】:2018-01-30 02:37:02
【问题描述】:
我正在使用window.MediaRecorder 录制一个 wav 音频文件,然后将其上传到 S3。我将数据块保存到一个数组中,然后在录制完成后用它们创建一个 Blob。这工作正常,我在录制或播放文件时没有问题。但是,我一生都无法弄清楚如何设置生成的 Blob 文件的持续时间。
每当我在本地下载文件或将其上传到 s3 时,任何地方都没有持续时间元数据。我将音频的持续时间保存为用户记录,但无法有效地将其附加到音频文件中。我觉得应该有一个简单的解决方案,但我只是花了几个小时搜索,似乎找不到任何东西。它必须是可能的,所以我错过了什么?
【问题讨论】:
-
您可以解析 WAV 标头。它应该包含准确计算 aufio 文件持续时间所需的所有信息。标题描述可以在这里找到:soundfile.sapp.org/doc/WaveFormat
-
记录开始和停止的时刻,然后计算秒数。然后将带有 javascript 库的秒数添加到记录的 blob 中。例如。 github.com/yusitnikov/fix-webm-duration - 或者使用自动设置长度的 ffmpeg 在服务器上进行转换。
-
这可能会有所帮助:stackoverflow.com/a/55093702/1066234
标签: javascript file audio blob wav