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

我使用浏览器录制音频,然后通过 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)

        }

    });


慕姐4208626
浏览 294回答 2
2回答

LEATH

告诉记录器使用什么格式:const recorder = new MediaRecorder(stream, {mimeType: 'audio/wav'});然后不要对 blob 构造函数中的格式撒谎:const blob = new Blob(chunks, {type: chunks[0].type});

呼如林

没关系,我使用 Recorder.js 而不是它内置了 wav 导出。现在元数据设置正确
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript