Blob音频文件在使用getUserMedia记录在浏览器中后已损坏

问题描述 投票:0回答:2

我使用浏览器录制音频,然后通过ajax将blob文件发送到我的服务器。我可以用播放器打开它并听到我的声音。尽管它已经损坏了,但是尽管录制了几秒钟,但播放器仍显示音频长达435小时。我想以二进制形式将其发送到转录服务,并且它无法识别这种形式的文件。我有什么选择?我可以用python修复它,还是可以用js正确设置元数据。

mediaRecorder.onstop = function() {
    var blob = new Blob(chunks, {'type': 'audio/wav'});

    var formData = new FormData();
    formData.append('audio', blob, 'audio.wav');
    $.ajax({
        type: 'POST',
        url: 'http://localhost:5000/ajax/get_file/',
        data: formData,
        processData: false,
        contentType: false,
        success: function(response) {
              console.log(response)
        }
    });
javascript getusermedia corruption
2个回答
0
投票

[没关系,我改用Recorder.js,它内置了wav导出功能。现在已经正确设置了元数据


0
投票

告诉记录器使用什么格式:

const recorder = new MediaRecorder(stream, {mimeType: 'audio/wav'});

然后不要在Blob构造函数中撒谎:

const blob = new Blob(chunks, {type: chunks[0].type});
© www.soinside.com 2019 - 2024. All rights reserved.