リモート ストリームのスタートガイド

RTCPeerConnection がリモートピアに接続すると、次のことが可能になります。 両者間で音声と動画をストリーミングできます。これが Pod の getUserMedia() から RTCPeerConnection に送信されます。メディア ストリームは少なくとも 1 つのメディア トラックで構成され、個別に追加される メディアをリモコンに送信するときに 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 の たとえば、各トラックは 1 つのストリームにのみ関連付けられます。

MediaStream ID はピア接続の両側で一致しますが、 一般に MediaStreamTrack ID には当てはまりません。

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

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