代码之家  ›  专栏  ›  技术社区  ›  The Windhover

如何在javascript中更改音频文件编解码器

  •  0
  • The Windhover  · 技术社区  · 7 年前

    我正在使用MediaRecorder从浏览器收集音频,生成的音频文件具有与IBM Watson语音到文本不兼容的编解码器。编解码器是“matroska”,我需要它是原始的PCM编解码器。

    如何设置从浏览器收集的音频文件的编解码器?下面是我正在使用的一些代码:

    var options = {
      audioBitsPerSecond : 32000
    }
    var mediaRecorder = new MediaRecorder(audioStream, options);
    mediaRecorder.start();
    
    var data = [];
    mediaRecorder.ondataavailable = e => console.log(mediaRecorder.audioBitsPerSecond);
    mediaRecorder.ondataavailable = e => e.data.size && data.push(e.data);
    mediaRecorder.onstop = () => process(data);
    
    function process(data) {
      var int16Array = [];
      const blob = new Blob(data, {
        type: 'audio/wav'
      })
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   HoldOffHunger Lux    7 年前

    您可以通过在 mimeType 新MediaRecorder()的参数。感谢Jaromanda X指出了我在寻找新blob类型时的错误。这样做。。。

    var options = {
        audioBitsPerSecond : 32000,
        mimeType: 'audio/webm;codecs=pcm',
    }
    var mediaRecorder = new MediaRecorder(audioStream,options);
    

    查看上面的MDN文档: MDN Network: MediaRecorder

    您可以查看是否支持mimetype isTypeSupported , MediaRecorder.isTypeSupported() .

    那么,支持哪些编解码器呢? 我已经广泛地寻找这个答案,但是,我发现最好的是另一个stackoverflow帖子: Where is a comprehensive list of supported media types when recording with the Media * API?