RTCTrackEvent
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
WebRTC API の RTCTrackEvent インターフェイスは、 track イベントを表します。これは新しい MediaStreamTrack が RTCRtpReceiver に RTCPeerConnection の一部として追加されたときに送られます。
対象は、トラックが追加される RTCPeerConnection オブジェクトです。
このイベントは WebRTC レイヤーからウェブサイトまたはアプリケーションに送信されるため、通常、RTCTrackEvent を自分でインスタンス化する必要はありません。
コンストラクター
RTCTrackEvent()-
新しい
RTCTrackEventオブジェクトを作成して返します。新しいトラックイベントは通常、 WebRTC インフラストラクチャによって作成され、接続のontrackイベントハンドラーに送信されるため、自分で作成する必要はほとんどありません。
インスタンスプロパティ
RTCTrackEvent は Event から派生しているため、そちらのプロパティも使用できます。
receiver読取専用-
RTCPeerConnectionに追加されたトラックで使用されるRTCRtpReceiverです。 streams読取専用 省略可-
MediaStreamオブジェクトの配列で、各オブジェクトは、追加するtrackが属するメディアストリームの 1 つを表します。 既定では、配列は空で、ストリームのないトラックを示します。 track読取専用-
この接続に追加された
MediaStreamTrackです。 transceiver読取専用-
新しいトラックで使用される
RTCRtpTransceiverです。
トラックイベントの種類
トラックイベントは 1 種類のみです。
track
track イベントは、新しいトラックが接続に追加されたときに RTCPeerConnection に送信されます。 track イベントが RTCPeerConnection の ontrack ハンドラーに配信される時点で、新しいメディアは特定の RTCRtpReceiver (イベントの receiver プロパティで指定)に対するネゴシエーションを完了しています。
さらに、受信者の track で指定された MediaStreamTrack は、イベントの track で指定されたものと同じであり、そのトラックは、関連付けられたすべてのリモート MediaStream オブジェクトに追加されています。
新しいトラックが利用可能になったときに通知を受ける track イベントリスナーを追加することができます。これにより、例えば、 RTCPeerConnection.addEventListener() または ontrack イベントハンドラープロパティを使用して、そのメディアを <video> 要素に添付することができます。
メモ:
新しい着信トラックが接続に追加されたときに track イベントを受け取り、 addTrack() を呼び出して接続の遠端にトラックを追加すると、リモートピアーで track イベントが起動されることを覚えておくとよいでしょう。
例
この単純な例では、 track イベントのイベントリスナーを作成し、ID が video-box である <video> 要素の srcObject を、イベントの streams 配列に渡されたリスト内の最初のストリームに設定します。
peerConnection.addEventListener(
"track",
(e) => {
let videoElement = document.getElementById("video-box");
videoElement.srcObject = e.streams[0];
},
false,
);
仕様書
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtctrackevent> |
ブラウザーの互換性
Loading…