2016-12-24 15 views
5

Korzystając z poniższego, możemy poprosić użytkownika o wybranie preferowanego urządzenia wejściowego z ograniczeniami źródeł dźwięku i obrazu (obecnie tylko obsługa przeglądarki Chrome).Sprawdź, czy wybrany mikrofon nie jest wyciszony za pomocą api web api

navigator.mediaDevices.getUserMedia({audio: true}) 
    .then((stream) => { 
    console.log(stream); 
    }); 

Ktoś wie, czy nie ma odsłoniętej API wykryć, czy urządzenie wejściowe użytkownika jest aktualnie wybrany wyciszony, czy nie? Urządzeniem wejściowym może być mikrofon wbudowany, mikrofon zewnętrzny lub mikrofon programowy, który jest wyświetlany w systemie jako urządzenie sprzętowe.

Odpowiedz

3

Można sprawdzić personelem na .mutedBoolean wartość każdego MediaStreamTrack przez iteracja tablicy zwróconej przez MediaStream.getAudioTracks() metody, lub wybierając MediaStreamTrack indeksem z tablicy.

navigator.mediaDevices.getUserMedia({audio: true}) 
    .then(stream => { 
    console.log("MediaStreamTrack muted:", stream.getAudioTracks()[0].muted); 
    }) 
    .catch(err => console.log(err)); 

Można również wykorzystać mute i unmuteMediaStreamTrack wydarzenia.

+1

Wygląda na to, że nie odzwierciedla rzeczywistego stanu wyciszenia mikrofonu w Chrome 57 (Windows 10), nawet po wybraniu określonego mikrofonu innego niż "Uszkodzony" przez "deviceId". –

+1

@ChrisHunt Można również ustawić właściwość 'volume' dla' ograniczeń '. Zobacz [Możliwości, ograniczenia i ustawienia] (https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/applyConstraints). Jak wyciszyć mikrofon? Czy możesz opisać, jak powielić sprawę? Czy dołączasz zdarzenia 'onmute',' onunmute' do 'MediaStreamTrack'? – guest271314

+2

Najpierw znajdź włączony mikrofon w menu kontekstowym Taca> Dźwięk> Urządzenia do nagrywania> Dźwięk. Użyj 'navigator.mediaDevices.enumerateDevices()', aby zidentyfikować 'deviceId' dla urządzenia z tą samą etykietą. Użyj 'navigator.mediaDevices.getUserMedia ({audio: {deviceId: '...'}})), aby wybrać urządzenie. Zweryfikuj "track = stream.getTracks() [0]" pasuje do urządzenia i sprawdź 'track.mute'. Wycisz mikrofon za pomocą zakładki "Poziomy" dla określonego urządzenia w oknie "Urządzenia rejestrujące". Sprawdź 'track.mute' i zobacz, że się nie zmieniło. –

Powiązane problemy