如何在JavaScript的导航器.mediaDevices.getUserMedia中设置采样频率?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (871)

我目前正在尝试设置内部的采样频率navigator.mediaDevices.getUserMedia。这是一段代码:

navigator.mediaDevices.getUserMedia({audio: {"sampleRate": {"exact": 8000}}, video: false}).then(handleSuccess).catch(e => console.log(e));

var handleSuccess = function(stream)
{
    mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.start(1000); // the argument here is the duration of each audio chunk in milliseconds
    mediaRecorder.addEventListener
    ("dataavailable", event => 
        {
            blob = event.data;
            console.log(blob)
        }
    );
}

不相信设定sampleRategetUserMedia实际工作,因为当我检查BLOB大小不同sampleRate的价值观,它永远不会改变。每个blob始终在6000到7000的范围内。

提问于
用户回答回答于

我发现了什么是错的。自sampleRate2018年10月6日起,Firefox不支持该约束。它应该在Chrome上受支持,但它不起作用,我已经为Chromium提交了一个错误报告:https://bugs.chromium.org/ p /铬/问题/细节?ID = 889851

如果你需要亲自检查一下,Mozilla已经为支持的媒体约束做了一个非常好的演示:https://mdn.mozillademos.org/en-US/docs/Web/API/Media_Streams_API/Constraints$samples/Example_Constraint_exerciser?修订= 1411870将在顶部看到支持的音频约束。如果在Firefox上输入链接,将看到sampleRate没有在那里列出。在Chrome上,它已列出,但如果{"sampleRate": 8000}在“请求的音频约束”输入框内输入并单击“应用约束”,则应在“实际音频设置”框中看到采样率不受影响。

扫码关注云+社区

领取腾讯云代金券