MediaStream 지원 중단

getUserMedia() 또는 WebRTC를 사용하는 경우 코드를 조정해야 할 수 있습니다. Chrome 45 이상에서만 지원됩니다.

MediaStream API는 미디어의 동기화된 스트림입니다. 예를 들어 카메라로 촬영한 스트림과 마이크 입력이 비디오 및 오디오 트랙을 동기화했습니다. 각 트랙은 는 MediaStreamTrack입니다. <track> 요소와 혼동하지 마세요.

Chrome 45에서는 다음과 같은 세 가지 MediaStream 지원이 중단됩니다.

  • MediaStream.ended
  • MediaStream.label
  • MediaStream.stop()

동시에 두 가지 사항이 추가됩니다.

  • MediaStream.active
  • MediaStreamTrack.stop()

이를 위해서는 다음과 같이 변경해야 합니다.

  • MediaStream.active를 사용하여 MediaStream.ended가 아닌 MediaStream가 스트리밍되고 있는지 확인합니다.
  • 스트리밍을 중지하려면 MediaStream.stop()가 아닌 MediaStreamTrack.stop()를 사용합니다.
  • MediaStream에 고유 식별자가 필요하면 MediaStream.label 대신 MediaStream.id를 사용하세요. MediaStreamTrack.label는 스트림의 소스 기기에 사람이 읽을 수 있는 이름을 제공합니다. 예를 들면 FaceTime HD 카메라 (내장) (05ac:8510).

실제 동작을 확인할 수 있습니다. 다음에서 simpl.info/gum을 여세요. Chrome (카메라가 있는 기기)으로 이동하여 Chrome DevTools 콘솔을 확인합니다. 이 MediaStream 객체 stream이 이 객체의 getUserMedia() 콜백에 전달됩니다. 데모는 전역 범위에 있으므로 콘솔에서 검사할 수 있습니다. 전화걸기 이 스트림의 MediaStreamTrack를 보려면 stream.getTracks()[0]하세요.

Chrome DevTools 콘솔의 MediaStream 및 MediaStreamTrack을 보여주는 스크린샷

Stop(), 종료 및 활성 상태

미디어 캡처 및 스트림 W3C 실무 그룹에서 MediaStream에 새 트랙을 추가하면 발생하는 문제에 대한 문제를 검토했습니다. 빈 MediaStream가 종료되었는지 여부에 관계없이 '다시 시작되지 않음'과 같이 MediaStreamended를 구현하는 적절한 방법이 없습니다. HTML5의 다른 부분 'ended' '이것은 종료되었으며 앞으로 '절대 다시 시작 안함'으로 설정합니다. '활성' 이러한 의미는 없습니다. 비활성 스트림이 새 트랙이 추가되는 등의 경우에 다시 활성화됩니다. 실무 그룹은 혼동을 주는 특성과 기능을 유지하기보다는 삭제합니다.

다음은 'MediaStream.active'를 사용하는 방법의 예입니다. 포드의 상태를 스트림:

var gumStream;

navigator.getUserMedia({audio: false, video: true},
    function(stream) {
            gumStream = stream;
        // ...
    },
    function(error) {
        console.log('getUserMedia() error', error);
    });

// …

if (gumStream.active) {
    // do something with the stream
}

MediaStream에서 stop()을 삭제해도 실제 기능은 삭제되지 않았습니다. 소스 장치를 분리하기 위한 프로세스 등은 어쨌든 MediaStreamTrack입니다. 대신 MediaStreamTrack에서 stop()를 사용하세요.

navigator.getUserMedia({audio: false, video: true},
    function(stream) {
            // can also use getAudioTracks() or getVideoTracks()
        var track = stream.getTracks()[0];  // if only one media track
        // ...
        track.stop();
    },
    function(error){
        console.log('getUserMedia() error', error);
    });

라벨

이 속성의 용도를 아는 사람은 아무도 없었습니다.

MediaStream.label이(가) 사양의 첫 번째 버전에 추가되었지만 아무도 알지 못했습니다. label의 용도였습니다. 스트림이 진행될 때 label이 어떻게 되었는지도 명확하지 않았습니다. RTCPeerConnection을(를) 통해 전송되었습니다.

W3C 실무 그룹이 이리저리 질문했지만 아무도 원하지 않아서 삭제했습니다.

MediaStream.idMediaStreamMediaStreamTrack.label는 소스 이름을 제공합니다. 스트림 유형(예: 카메라 또는 마이크 유형)입니다.

MediaStreamMediaStreamTrack에 관한 추가 정보 보기 출처: Mozilla Developer Network HTML5 Rocks는 Google의 기본 언어 환경에서 getUserMedia()오디오 캡처 및 동영상

Chrome 변경사항에 관해 의견을 보내주셔서 감사합니다. 여기여기에서 이러한 지원 중단에 관한 버그를 확인하고 구현 의도에서 자세한 논의와 세부정보를 확인할 수 있습니다.