我目前正在尝试在内部设置采样频率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)
}
);
}
我不相信设定sampleRate
在getUserMedia
实际的工作,因为当我用不同的检查斑点的大小sampleRate
值,它永远不会改变。每个Blob始终在6000到7000的范围内。
我发现了问题所在。sampleRate
截至2018年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}
在“请求的音频限制”输入框中输入并单击“应用限制”,则应该在“实际音频设置”框中看到采样率不受影响。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句