RTCTransformEvent

可用性有限

此功能不是基线功能,因为它在一些最广泛使用的浏览器中不起作用。

RTCTransformEventWebRTC API的一部分,它表示在专用工作线程中触发的事件,当编码帧已排队等待由WebRTC 编码转换进行处理时触发。

该接口具有一个transformer属性,该属性公开了一个可读流和一个可写流。工作线程应从transformer.readable读取编码帧,根据需要修改它们,并按相同的顺序且不重复地将它们写入transformer.writable

在撰写本文时,只有一种基于RTCTransformEvent的事件:rtctransform

Event RTCTransformEvent

实例属性

由于RTCTransformEvent基于Event,因此其属性也可用。

RTCTransformEvent.transformer 只读

返回与事件关联的RTCRtpScriptTransformer

转换事件类型

只有一种类型的转换事件。

rtctransform

当关联的RTCRtpScriptTransform构建时,以及每当将新的编码视频或音频帧排队以进行处理时,都会在工作线程全局作用域中触发rtctransform事件。

可以使用DedicatedWorkerGlobalScope.addEventListener()onrtctransform事件处理程序属性添加rtctransform事件监听器,以便在新的帧可用时收到通知。

示例

此示例创建了rtctransform事件的事件监听器。

此示例假设我们有一个TransformStream,其中包含从主线程中的RTCRtpScriptTransform构造函数传递的options对象。代码的末尾显示了如何通过转换流从readablewritable传递流。

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 编码转换
# rtctransformevent

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。