미디어 캡처 및 제약 조건

WebRTC의 미디어 부분은 캡처하는 기능이 있는 하드웨어에 액세스하는 방법을 다룹니다. 동영상 및 오디오(예: 카메라 및 마이크)와 미디어 스트리밍 방식, 있습니다 또한 애플리케이션이 화면을 처리하는 방식인 디스플레이 미디어도 다룹니다. 있습니다.

미디어 기기

브라우저에서 지원하는 모든 카메라와 마이크에 액세스하고 navigator.mediaDevices 객체를 통해 관리됩니다. 애플리케이션은 현재 연결된 장치의 목록을 확인하고 변경 사항을 수신 대기할 수 있습니다. 카메라와 마이크로폰은 USB를 통해 연결되며 연결을 해제할 수 있습니다 미디어의 상태는 변경할 수 있으므로 애플리케이션은 변경사항을 적절하게 처리하기 위해 사용해야 합니다

제약조건

미디어 기기에 액세스할 때는 최대한의 제약을 받습니다 기본 카메라를 열고 마이크가 너무 멀면 멀리 있는 미디어 스트림을 선택할 수 있습니다

특정 제약 조건은 MediaTrackConstraint 객체에 정의되어 있습니다. 하나는 비디오용이고 다른 하나는 비디오용입니다. 이 객체의 속성은 ConstraintLong, ConstraintBoolean, ConstraintDouble 또는 ConstraintDOMString입니다. 이 매개변수는 특정 값 (예: 숫자, 부울 또는 문자열), 범위 (LongRange 또는 DoubleRange, 최소 및 최댓값) 또는 ideal 또는 exact 정의가 있는 객체를 반환합니다. 특정 값이 있으면 브라우저는 최대한 가까운 것을 선택하려고 시도합니다. 범위에는 해당 범위에서 가장 좋은 값이 사용됩니다. exact 조건: 지정하면 해당 제약 조건과 정확히 일치하는 미디어 스트림만 반환합니다.

근거리

// Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}

범위

// Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}

완전일치검색

// Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}

미디어 스트림의 특정 트랙에 있는 실제 구성을 확인하려면 다음을 반환하는 MediaStreamTrack.getSettings()를 호출할 수 있습니다. 현재 MediaTrackSettings이(가) 적용 중입니다.

또한 선택한 미디어 장치에서 트랙의 제약 조건을 트랙에서 applyConstraints()를 호출하여 열었습니다. 이를 통해 미디어 장치를 재구성하려면 먼저 장치를 닫지 않아도 표시됩니다.

디스플레이 미디어

화면 캡처 및 녹화를 수행하려는 애플리케이션 Display Media API를 사용해야 합니다. getDisplayMedia() 함수는 navigator.mediaDevicesgetUserMedia()와 유사하며 다음을 위해 사용됩니다. 디스플레이 콘텐츠 (또는 디스플레이와 같이 디스플레이의 일부)를 창)을 표시합니다. 반환된 MediaStreamgetUserMedia()

getDisplayMedia()의 제약 조건은 일반 제약 조건과 다릅니다. 비디오 또는 오디오 입력.

{
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}

위의 코드 스니펫은 화면 녹화의 특수 제약 조건이 어떻게 있습니다. 이러한 기능은 디스플레이, 있습니다.

스트림 및 트랙

MediaStream는 트랙으로 구성된 미디어 콘텐츠 스트림을 나타냅니다. (MediaStreamTrack)의 오디오 및 동영상 다음 위치에서 모든 트랙을 검색할 수 있습니다. 다음과 같은 배열을 반환하는 MediaStream.getTracks()를 호출하여 MediaStream합니다. MediaStreamTrack 객체

MediaStreamTrack

MediaStreamTrack에는 audio 또는 videokind 속성이 있습니다. 나타내는 미디어의 종류를 나타냅니다. 전환하여 각 트랙을 음소거할 수 있습니다. enabled 속성을 포함해야 합니다. 트랙에 있는 부울 속성 remoteRTCPeerConnection에서 제공하고 원격 피어에서 가져온 경우