Encontré el permiso de micrófono del navegador Obtención de Mozilla. Define una función para solicitar permiso y escuchar el micrófono del cliente como tal:
function getLocalStream() { navigator.mediaDevices.getUserMedia({video: false, audio: true}).then( stream => { window.localStream = stream; // A window.localAudio.srcObject = stream; // B window.localAudio.autoplay = true; // C }).catch( err => { console.log("u got an error:" + err) }); } Revisé Chrome, Firefox y Safari; todos arrojan un error acerca de que window.localAudio no está undefined . ¿De dónde lo sacó este tutorial? ¿Fue window.localAudio alguna vez una cosa? ¿Qué se suponía que debía hacer?
Intentaré darte algo más útil que la pregunta que has hecho. La función creará el elemento si no está presente y hay pocas opciones disponibles. En el ejemplo, estoy agregando el elemento de audio recién creado al cuerpo, pero funcionará incluso si no se agrega, es una cuestión de elección.
<html> <head> <script> var el; function attachStream(stream, el, options) { var item; var URL = window.URL; var element = el; var opts = { autoplay: true, mirror: false, muted: false, audio: false, disableContextMenu: false }; if (options) { for (item in options) { opts[item] = options[item]; } } if (!element) { element = document.createElement(opts.audio ? 'audio' : 'video'); } else if (element.tagName.toLowerCase() === 'audio') { opts.audio = true; } if (opts.autoplay) element.autoplay = 'autoplay'; if (opts.muted) element.muted = true; if (!opts.audio && opts.mirror) { ['', 'moz', 'webkit', 'o', 'ms'].forEach(function(prefix) { var styleName = prefix ? prefix + 'Transform' : 'transform'; element.style[styleName] = 'scaleX(-1)'; }); } element.srcObject = stream; return element; }; function getLocalStream() { navigator.mediaDevices.getUserMedia({ video: false, audio: true }).then( stream => { var doesnotexist = !el; el = attachStream(stream, el, { audio: true, autoplay: true }); if (doesnotexist) document.body.appendChild(el); } ).catch(err => { console.log("u got an error:" + err) }); } window.addEventListener('DOMContentLoaded', (event) => { getLocalStream(); }); </script> </head> <body> </body> </html>