JS
HTMLVideoElement WRTC Camera Zoom Update
dev-hahm
2024. 8. 8. 17:06
문제 : video태그를 통해서 웹캠 혹은 핸드폰 카메라를 출력할때 간혹 zoom을 변경하고 싶을 수 있다.
결론: 웹캠이 하드웨어적으로 zoom 변경 기능이 있다면 사용할 수 있다. (핸드폰으로 가능)
예시코드
let minZoom, maxZoom;
const zoom = 1;
// 하드웨어 zoom 정보
// undefined가 아니라면, {min:1, max:8} 이런식의 Object를 반환함
const zoomObj = videoElement.srcObject.getVideoTracks()[0].getCapabilities().zoom;
if (zoomObj) {
{minZoom, maxZoom} = zoomObj;
console.log(`minZoom: ${minZoom}, maxZoom: ${maxZoom});
}
// zoom 변경
videoElement
.srcObject
.getVideoTracks()[0]
.applyConstraints({advanced: [{zoom: ++zoom]});
maxZoom은 디바이스별로 상이하다.
ios, android 둘다 테스트 해본결과 가능하다.