Как отключить микрофон после завершения распознавания речи?

Недавно я реализовал функцию распознавания речи с помощью речевого API HTML5, которая может быть интегрирована с Google Chrome.

Проблема, с которой я сталкиваюсь, заключается в том, как отключить микрофон после завершения речи?

Знак записи не должен быть там после завершения речи.

1 ответ

Решение

Вызов .stop() метод MediaStreamTrack, а также .removeTrack() с MediaStreamTrack в качестве параметра, который останавливает MediaStreamTrack и устанавливает MediaStream в .active собственность на false

  <body>
    <button>click</button>
   <script>
     navigator.mediaDevices.getUserMedia({audio:true})
     .then(stream => {
       const track =  stream.getAudioTracks()[0];
       console.log(track, track.readyState, stream, stream.active);
       track.onended = e => {
         console.log(e.type, track.readyState)
       }
       stream.oninactive = e => {
         console.log(e.type, stream.active)
       }
       document.querySelector("button").onclick = () => {
         track.stop();
         stream.removeTrack(track);
       }
     })
   </script>
  </body>

plnkr https://plnkr.co/edit/eqbZAI9SYwGTxEdgw92D?p=preview

Другие вопросы по тегам