navigator.mediaDevices.enumerateDevices().then(devices =>
devices.forEach(device => console.log(device.label)))
예.
일부 브라우저는 사용자가 카메라 또는 마이크 사용에 대한 권한을 부여 할 수 있도록 허용하므로 사용자가 매 시간마다 묻지 않으려는 경우 영구 액세스 권한이 있는지 여부에 메시지를 묶지 마십시오 . 다른 답변에서 언급
navigator.mediaDevices.enumerateDevices
트릭은 현재 및/또는 마이크 상당히 잘 카메라에 지속적인 권한을 감지 -하지만 당신은 모르는 어느 하나 또는 둘 다 부여했는지.
또한 단일 사용 권한 사용 사례를 부분적으로 지원하기 위해 카메라 및/또는 마이크 영구 액세스 레이블의 액세스를 해제하도록 사양이 최근에 업데이트되어 시간이 지날 수도 있습니다. 브라우저가 사양을 업데이트하면 더 이상 이러한 상황에서 영구적 인 카메라 및/또는 마이크 권한을 암시하지 않습니다.
권한 지속되었는지 여부에 대한 장기적인 대답은 query
을 사용하는 것입니다,하지만 당신이 실행 볼 수있는 브라우저가 "camera"
및 "microphone"
에 대한 (또는 모든 경우에) 아직 지원하지 않습니다
navigator.permissions.query({name: "camera"})
.then(({status}) => console.log(status),
e => console.log(e.name +": "+ e.message));
이 작업에는 장치가 감지되지 않을 경우? 작동하도록 보장 된 문서가 있습니까? – Dodekeract
예, 장치가없는 경우이 방법을 사용할 수 없습니다. 나는 문서를 모른다. –
장치를 반환하지 않으면 권한을 요청할 것이 없습니다. 그래도 좋습니다. 그러나 *** 카메라 *** 또는 *** 마이크가 부여 된 경우 라벨에 표시되므로 일부 사용자에게는 여전히 메시지가 표시 될 수 있습니다. 또한 Chrome 이외의 브라우저에서는 영구 액세스 권한을 명시 적으로 설정 한 사용자를 제외하고는 항상 이러한 방식으로 사용자를 버그 처리합니다. 또한, 다른 답변에서 언급했듯이, 이것은 미래에 깨질 가능성이 있습니다. – jib