getUserMedia
MediaDevices 인터페이스의 getUserMedia() 메서드는 사용자가 미디어 입력 장치(카메라, 마이크)에 접근할 수 있도록 허용을 요청한다. 이를 통해 요청된 유형의 미디어 트랙을 포함하는 MediaStream 객체를 생성할 수 있다.
기본적으로 활용도 가 높다
HTTPS와 같은 보안 컨텍스트에서만 사용 가능하다.
MediaStream객체를 반환하는Promise를 반환한다. Promise는 각각NotAllowedError또는NotFoundErroDOMException과 함께 거부한다.
DOMException 이란
웹 API에서 특정 오류가 발생할 때 사용되는 예외 타입이다.
DOMException 객체는
name와message라는 두 가지 주요 속성을 가진다.name :
NotFoundError,SecurityError,NotAllowedError등이 있다.message : 오류에 대한 자세한 설명을 담고 있는 메시지
주요 사용법
navigator.mediaDevices
.getUserMedia(constraints)
.then((stream) => {
/* use the stream */
})
.catch((err) => {
/* handle the error */
});constraints
getUserMedia()에 전달되는 객체로, 요청하는 미디어 유형과 해당 유형의 제약 조건을 지정한다.video와audio라는 두 가지 멤버를 포함할 수 있으며, 각각의 값은true,false또는 더 세부적인 제약조건이 포함된 객체이다.
[기본제어]
[해상도 제어]
가로 해상도 최소 1024, 이상적인 해상도 1280, 최대 1920
세로 해상도 최소 576, 이상적인 해상도 720, 최대 1080
[카메라 전후면 제어]
모바일의 경우 대부분의 유저가 후면 보단 전면을 선호한다.
전면 카메라의 경우
user후면 카메라의 경우facingMode: { exact: "environment"}
[카메라 디바이스 제어]
deviceId제약 조건을 직접 사용하면, 해당 장치가 사용 가능한 경우 그 장치를 선택한다.해당 장치가 제약이 있는 경우 다른 장치를 선택한다.
특정 장치를 반드시 사용해야 한다면
deviceId제약 조건에exact키워드를 사용할 수 있다.
enumerrateDevices() [디바이스 아이디 얻는 방법]
enumerateDevices() 메서드는 마이크, 카메라, 헤드셋 등 현재 사용 가능한 미디어 입력 및 출력 장치의 목록을 요청한다. 반환된 프로미스는 디바이스를 설명하는 MediaDeviceInfo 객체 배열로 확인된다.
Last updated