RTCPeerConnection: addstream 事件

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

已廢棄的 addstream 事件會在新的媒體(以 MediaStream 物件的形式)被新增到 RTCPeerConnection 時傳送給它。

警告:此事件已從 WebRTC 規範中移除。您應該改為監聽 track 事件,該事件會在每個新增到 RTCPeerConnection 的媒體軌道時傳送。

同樣,您可以透過監聽 removestream 事件來監視從連線中移除的流。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("addstream", (event) => { })

onaddstream = (event) => { }

事件型別

一個 MediaStreamEvent。繼承自 Event

事件屬性

作為 EventMediaStreamEvent,此事件還實現了這些屬性:.

MediaStreamEvent.stream 只讀

包含與事件關聯的流的 MediaStream

示例

此示例用於確定使用者的瀏覽器是否支援 track 事件。如果支援,則設定 track 事件監聽器;否則,設定 addstream 事件監聽器。pc 是一個 RTCPeerConnection

js
if (pc.addTrack !== undefined) {
  pc.ontrack = (ev) => {
    ev.streams.forEach((stream) => doAddStream(stream));
  };
} else {
  pc.onaddstream = (ev) => {
    doAddStream(ev.stream);
  };
}

這會為新增到 RTCPeerConnection 的每個流呼叫一次 doAddStream() 函式,無論瀏覽器傳送的是 addstream 還是 track

您還可以使用 addEventListener() 方法來設定事件監聽器。

js
pc.addEventListener("addstream", (ev) => doAddStream(ev.stream), false);

瀏覽器相容性

另見