美文网首页
chrome音频录制麦克风双声道,输出只有单声道的问题

chrome音频录制麦克风双声道,输出只有单声道的问题

作者: ICEcream_jie | 来源:发表于2023-12-25 23:34 被阅读0次

    背景:麦克风双向录音,形成双通道(2 channel)

    但是在谷歌浏览器(chrome内核)调用getUserMedia时解析stream时
    getUserChannel(0)和getUserChannel(1)获得的音频流几乎一致,
    没有区分左右声道。

    解决办法:

    getUserMedia中的audio配置!!!
    设置echoCancellation: false即可!!!

    代码如下:

    const ac = new (window.AudioContext || window.webkitAudioContext)();
    navigator.getUserMedia({
      audio: {
        echoCancellation: false // 关闭回波消除  
      },
      video: false
    }, stream => {
           const mediaSource = ac.createMediaStreamSource(stream);
            // const mediaSource = ac.createMediaElementSource(audio);
            console.log(mediaSource);
            // 创建一个用于通过JavaScript直接处理音频
            const scriptProcessor = ac.createScriptProcessor(2048, 2, 2);
            mediaSource.connect(ac.destination)
    
            scriptProcessor.onaudioprocess = (evt) => {
              // outputBuffer
              const l = evt.inputBuffer.getChannelData(0); // 左
              const r = evt.inputBuffer.getChannelData(1); // 右
           }
    })
    

    参考代码:(需要自行设置audio的echoCancellation属性为false)
    https://github.com/MuGuiLin/WebMediaAPI

    相关文章

      网友评论

          本文标题:chrome音频录制麦克风双声道,输出只有单声道的问题

          本文链接:https://www.haomeiwen.com/subject/glxlndtx.html