RTCTransformEvent

基準線 2025
新推出

自 2025 年 10 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於較舊的裝置或瀏覽器。

RTCTransformEventWebRTC API 的一部分,它表示當一個編碼幀已被排隊等待由 WebRTC Encoded Transform 進行處理時所觸發的事件。

該介面有一個 transformer 屬性,該屬性暴露了一個可讀流和一個可寫流。工作執行緒應從 transformer.readable 讀取編碼幀,根據需要進行修改,然後將它們按相同順序且無重複地寫入 transformer.writable

在撰寫本文時,只有一種基於 RTCTransformEvent 的事件:rtctransform

Event RTCTransformEvent

例項屬性

由於 RTCTransformEvent 是基於 Event 的,因此它的屬性也可用。

RTCTransformEvent.transformer 只讀

返回與事件關聯的 RTCRtpScriptTransformer

轉換事件型別

只有一種轉換事件型別。

rtctransform

當構造關聯的 RTCRtpScriptTransform 物件時,以及每當有新的編碼影片或音訊幀被加入佇列等待處理時,都會在工作執行緒全域性作用域上觸發 rtctransform 事件。

您可以使用 DedicatedWorkerGlobalScope.addEventListener()onrtctransform 事件處理程式屬性來新增 rtctransform 事件監聽器,以便在新幀可用時獲得通知。

示例

此示例建立了 rtctransform 事件的事件監聽器。

該示例假設我們有一個 TransformStream,其中 options 物件是從主執行緒中的 RTCRtpScriptTransform 建構函式傳遞過來的。最後的程式碼展示了流如何從 readable 透過轉換流管道傳輸到 writable

js
addEventListener("rtctransform", (event) => {
  let transform;
  // Select a transform based on passed options
  if (event.transformer.options.name === "senderTransform") {
    transform = createSenderTransform(); // A TransformStream (not shown)
  } else if (event.transformer.options.name === "receiverTransform") {
    transform = createReceiverTransform(); // A TransformStream (not shown)
  }
  // Pipe frames from the readable to writeable through TransformStream
  event.transformer.readable
    .pipeThrough(transform)
    .pipeTo(event.transformer.writable);
});

請注意,此程式碼是 使用 WebRTC 編碼轉換 中提供的更完整示例的一部分。

規範

規範
WebRTC Encoded Transform
# rtctransformevent

瀏覽器相容性