Я только начинаю изучать WebRTC, но не могу отключить микрофон.
Это то, что я хочу:
Сначала он попытается получить доступ к микрофону.Затем будет кнопка для включения или выключения микрофона.
Это то, что я пробовал:
Код 1:
new MediaStream();
var constraints = track.getConstraints();
Ошибка : ReferenceError: track is not defined
Код 2:
const constraints = {
audio: true
};
const audio = document.getElementById("mic-audio");
navigator.mediaDevices.getUserMedia(constraints).
then((stream) => {audio.srcObject = stream});
Частично сработало.Браузер запрашивает мое разрешение разрешить странице использовать микрофон и получать к нему доступ, но я не знаю, как его отключить.
Код 3:
navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const track = mediaStream.getAudioTracks()[0];
track.applyConstraints(constraints)
.then(() => {
// Do something with the track such as using the Image Capture API.
})
.catch(e => {
// The constraints could not be satisfied by the available devices.
})
})
Это похоже на код # 2, но я все еще не знаю, как его отключить.
Я искал все об этом, но я не могу получить правильный код.
Я также нашел это из MDN :
Примечание: При реализации функции отключения / включения звука вы должны использовать свойство enabled
.
Я также пытался использовать свойство enabled
, например:
MediaStream.enabled = false
Но микрофон по-прежнему не отключен.
Я также попытался выполнить поиск здесь по переполнению стека, и вот что я нашел:
getLocalStream(function (stream,enable) {
if (stream) {
for (var i = 0; i < stream.getTracks().length; i++) {
var track = stream.getAudioTracks()[0];
if (track)
track.enabled = enable;
//track.stop();
}
}
});
Отвопрос: Как отключить / включить микрофон в webrtc
Но он вернул мне ошибку : ReferenceError: getLocalStream is not defined