在 JavaScript 的 navigator.mediaDevices.getUserMedia 中设置采样频率
Setting sampling frequency in JavaScript's navigator.mediaDevices.getUserMedia
我目前正在尝试在 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)
}
);
}
我不相信在 getUserMedia
中设置 sampleRate
实际上有效,因为当我检查具有不同 sampleRate
值的 blob 大小时,它永远不会改变。每个 blob 始终在 6000 到 7000 的范围内。
我发现了问题所在。截至 2018 年 10 月 6 日,Firefox 不支持 sampleRate
约束。它应该在 Chrome 上受支持,但它不起作用,我已经为 Chromium 提交了错误报告:https://bugs.chromium.org/p/chromium/issues/detail?id=889851
如果你需要自己检查一下,Mozilla 已经为支持的媒体限制做了一个非常好的演示:https://mdn.mozillademos.org/en-US/docs/Web/API/Media_Streams_API/Constraints$samples/Example_Constraint_exerciser?revision=1411870
您将在顶部看到支持的音频限制。如果您在 Firefox 上输入 link,您会看到 sampleRate
未在此处列出。在 Chrome 上,它已列出,但如果您在 "Requested audio constraints" 输入框中输入 {"sampleRate": 8000}
并单击 "Apply Constraints",您应该会在 "Actual audio settings" 框中看到采样率不受影响。
我目前正在尝试在 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)
}
);
}
我不相信在 getUserMedia
中设置 sampleRate
实际上有效,因为当我检查具有不同 sampleRate
值的 blob 大小时,它永远不会改变。每个 blob 始终在 6000 到 7000 的范围内。
我发现了问题所在。截至 2018 年 10 月 6 日,Firefox 不支持 sampleRate
约束。它应该在 Chrome 上受支持,但它不起作用,我已经为 Chromium 提交了错误报告:https://bugs.chromium.org/p/chromium/issues/detail?id=889851
如果你需要自己检查一下,Mozilla 已经为支持的媒体限制做了一个非常好的演示:https://mdn.mozillademos.org/en-US/docs/Web/API/Media_Streams_API/Constraints$samples/Example_Constraint_exerciser?revision=1411870
您将在顶部看到支持的音频限制。如果您在 Firefox 上输入 link,您会看到 sampleRate
未在此处列出。在 Chrome 上,它已列出,但如果您在 "Requested audio constraints" 输入框中输入 {"sampleRate": 8000}
并单击 "Apply Constraints",您应该会在 "Actual audio settings" 框中看到采样率不受影响。