원격 스트림 시작하기

RTCPeerConnection가 원격 피어에 연결되면 이 기기 간의 오디오 및 동영상을 스트리밍할 수 있습니다. 이때 getUserMedia()에서 수신된 스트림을 RTCPeerConnection에 연결합니다. 미디어 스트림은 하나 이상의 미디어 트랙으로 구성되며 미디어를 원격 피어에 전송하려고 할 때 개별적으로 RTCPeerConnection에 추가됩니다.

const localStream = await getUserMedia({video: true, audio: true});
const peerConnection = new RTCPeerConnection(iceConfig);
localStream.getTracks().forEach(track => {
    peerConnection.addTrack(track, localStream);
});

원격 피어에 연결하기 전에 트랙을 RTCPeerConnection에 추가할 수 있으므로 연결이 완료되기를 기다리는 대신 최대한 빨리 이 설정을 실행하는 것이 좋습니다.

원격 트랙 추가

다른 피어에서 추가한 원격 트랙을 수신하기 위해 Google은 track 이벤트를 수신 대기하는 로컬 RTCPeerConnection에 리스너를 등록합니다. RTCTrackEvent에는 피어의 상응하는 로컬 스트림과 MediaStream.id 값이 같은 MediaStream 객체의 배열이 포함됩니다. 이 예에서 각 트랙은 하나의 스트림하고만 연결됩니다.

MediaStream ID는 피어 연결의 양쪽에서 일치하지만 일반적으로 MediaStreamTrack ID에는 그렇지 않습니다.

const remoteVideo = document.querySelector('#remoteVideo');

peerConnection.addEventListener('track', async (event) => {
    const [remoteStream] = event.streams;
    remoteVideo.srcObject = remoteStream;
});