Кнопка для включения или выключения звука микрофона - PullRequest
0 голосов
/ 18 декабря 2018

Я только начинаю изучать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...