En utilisant ce qui suit, nous pouvons demander à l'utilisateur de sélectionner leur appareil d'entrée média préféré des contraintes sources audio et vidéo (actuellement uniquement intéressés à l'appui Chrome). Quelqu'un sait-il s'il existe une API exposée pour détecter si le périphérique d'entrée sélectionné par l'utilisateur est actuellement coupé ou non? Le périphérique d'entrée est un microphone intégré, un micro externe ou un microphone défini par logiciel qui s'affiche dans le système en tant que périphérique matériel.Vérifiez si le microphone sélectionné est coupé ou non avec api audio web
5
A
Répondre
3
Vous pouvez vérifier la propriété .muted
Boolean
valeur de chaque MediaStreamTrack
par itérer le tableau retourné par MediaStream
méthode .getAudioTracks()
, ou en sélectionnant l'MediaStreamTrack
par index du tableau.
navigator.mediaDevices.getUserMedia({audio: true})
.then(stream => {
console.log("MediaStreamTrack muted:", stream.getAudioTracks()[0].muted);
})
.catch(err => console.log(err));
Vous pouvez également utiliser mute
et unmute
MediaStreamTrack
événements.
Cela ne semble pas refléter l'état réel mis en sourdine du microphone dans Chrome 57 (Windows 10), même lors de la sélection d'un microphone spécifique non 'Default' par 'deviceId'. –
@ChrisHunt La propriété 'volume' de' contraints' peut également être définie. Voir [Capacités, contraintes et paramètres] (https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/applyConstraints). Comment le micro était-il coupé? Pouvez-vous décrire comment reproduire le cas? Avez-vous joint des événements 'onmute',' onunmute' à 'MediaStreamTrack'? – guest271314
Microphone activé pour la première identification sous Plateau> Menu contextuel de l'icône Son> Périphériques d'enregistrement> Audio. Utilisez 'navigator.mediaDevices.enumerateDevices()' pour identifier le 'deviceId' de l'appareil avec la même étiquette. Utilisez 'navigator.mediaDevices.getUserMedia ({audio: {deviceId: '...'}})' pour sélectionner le périphérique. Vérifiez 'track = stream.getTracks() [0]' correspond au périphérique et vérifie 'track.muted'. Coupez le microphone via l'onglet "Niveaux" du périphérique spécifique dans la boîte de dialogue "Périphériques d'enregistrement". Vérifiez 'track.muted' et voyez qu'il n'a pas changé. –