簡體   English   中英

使用 getUserMedia 在瀏覽器中錄制 Blob 音頻文件后損壞

[英]Blob audio file is corrupted after being recorded in browser with getUserMedia

我用瀏覽器錄制音頻,然后通過 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)
        }
    });

沒關系,我使用 Recorder.js 代替它內置了 wav 導出。 元數據現在已正確設置

告訴錄音機使用什么格式:

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

然后不要對 blob 構造函數中的格式撒謊:

const blob = new Blob(chunks, {type: chunks[0].type});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM