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
에 추가할 수 있습니다.
가능한 한 빨리 이 설정을 수행하는 것이
대기 중이라는 것을 알 수 있습니다.
원격 트랙 추가
다른 피어가 추가한 원격 트랙을 수신하기 위해
track
이벤트를 수신 대기하는 로컬 RTCPeerConnection
의 리스너입니다. 이
RTCTrackEvent
에는 동일한 값을 가진 MediaStream
객체의 배열이 포함됩니다.
MediaStream.id
값을 동종 앱의 해당 로컬 스트림으로 사용합니다. Google의
예를 들어 각 트랙은 단일 스트림에만 연결됩니다.
MediaStream
ID는 피어 연결의 양쪽에서 일치하지만
일반적으로 MediaStreamTrack
ID의 경우에는 그렇지 않습니다.
const remoteVideo = document.querySelector('#remoteVideo');
peerConnection.addEventListener('track', async (event) => {
const [remoteStream] = event.streams;
remoteVideo.srcObject = remoteStream;
});