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;
});