如何在 JavaScript getusermedia 中设置此参数?
How can I set this parameter in JavaScript 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 Uncaught TypeError: Failed to execute
'webkitGetUserMedia' on 'Navigator': The value provided is neither an
array, nor does it have indexed properties.
如何在 JavaScript 中实时录制 16khz 的音频?
几个问题:
optional
(现在是 advanced
)接受一个数组,例如optional: [{ sampleRate: 16000 }]
- 此约束语法已过时,仅适用于 Chrome。
sampleRate
尚未在任何浏览器 AFAIK 中实现。
所以它不会起作用,至少现在不会。以后使用spec syntax:
navigator.mediaDevices.getUserMedia({
audio: {
echoCancellation: {exact: false},
sampleRate: 16000,
}
})
.then(gotStream)
.catch(e => console.log(e));
我想以 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 Uncaught TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The value provided is neither an array, nor does it have indexed properties.
如何在 JavaScript 中实时录制 16khz 的音频?
几个问题:
optional
(现在是advanced
)接受一个数组,例如optional: [{ sampleRate: 16000 }]
- 此约束语法已过时,仅适用于 Chrome。
sampleRate
尚未在任何浏览器 AFAIK 中实现。
所以它不会起作用,至少现在不会。以后使用spec syntax:
navigator.mediaDevices.getUserMedia({
audio: {
echoCancellation: {exact: false},
sampleRate: 16000,
}
})
.then(gotStream)
.catch(e => console.log(e));