1 min read

WebRTC에서 카메라 전후면 정보 확인하는 다른 방법

WebRTC에서 카메라 전후면 정보 확인하는 다른 방법
Photo by visuals / Unsplash

MediaStreamTrack.getSources()의 정보 중 label 값을 parsing하면 해당 id의 카메라가 전면인지 후면인지 식별할 수 있다. 그러나 crosswalk에 내장된 webview를 사용하면 label 정보가 비어 있어서 이에 대한 식별이 불가능하다 (version 22.52.561.4). 새로 추가된 API인 navigator.mediaDevices.enumerateDevices에서도 label 정보가 누락되어 있었다.

bug tracking 정보를 검색해보니, 크롬에서는 한번 버그 레포팅 되었지만, 이미 해결되어서 현재 크롬에서는 label 값을 활용할 수 있다. 그러나 크로미움에서는 해당 버그 패치가 아직 반영되지 않은 듯 하다.

그런데 현재 표준에는 facing 필드가 삭제되어 있지만, chromium webview에서는 아직 표준 내용이 반영되지 않았는지 해당 필드를 사용할 수 있었다. 곧 없어질 정보이지만 그 때 쯤이면 label 필드의 버그로 수정될 것으로 보이기 때문에 당분간 사용 가능할 것으로 보인다.

아래와 같이 facing 값이 “user”면 전면 카메라, “environment”이면 후면 카메라이다.

MediaStreamTrack.getSources(function(srcs) {
    for(var i = 0; i < srcs.length; i++) {
        if(srcs[i].kind == "video") {
            // facing == "user" -> front
            // facing == "environment" -> back
            alert(srcs[i].facing);
        }
    }
});
— END OF POST.