如何在JavaScript getusermedia中设置此参数?

时间:2016-09-02 18:05:58

标签: javascript audio getusermedia

我想以16khz的采样率实时录制JavaScript中的音频。我有以下代码:

navigator.getUserMedia(
    {
        "audio": {
            "mandatory": {
                "googEchoCancellation": "false",
                "googAutoGainControl": "false",
                "googNoiseSuppression": "false",
                "googHighpassFilter": "false"
            },
            "optional": {
                "sampleRate": 16000 
            }
        },
    }, gotStream, function(e) {
        console.log(e);
    });

但这引发了错误:

  

index.html:1026未捕获的TypeError:无法执行   ' webkitGetUserMedia' on' Navigator&#39 ;:提供的价值既不是   数组,也没有索引属性。

如何在JavaScript中实时录制16khz的音频?

1 个答案:

答案 0 :(得分:3)

几个问题:

  1. optional(现在advanced)接受一个数组,例如optional: [{ sampleRate: 16000 }]
  2. 此约束语法已过时,仅适用于Chrome。
  3. sampleRate尚未在任何浏览器AFAIK中实现。
  4. 所以它不会起作用,至少现在还没有。将来,请使用spec syntax

    navigator.mediaDevices.getUserMedia({
      audio: {
        echoCancellation: {exact: false},
        sampleRate: 16000,
      }
    })
    .then(gotStream)
    .catch(e => console.log(e));