RTCTransformEvent
RTCTransformEvent
是WebRTC API的一部分,它表示在专用工作线程中触发的事件,当编码帧已排队等待由WebRTC 编码转换进行处理时触发。
该接口具有一个transformer
属性,该属性公开了一个可读流和一个可写流。工作线程应从transformer.readable
读取编码帧,根据需要修改它们,并按相同的顺序且不重复地将它们写入transformer.writable
。
在撰写本文时,只有一种基于RTCTransformEvent
的事件:rtctransform
。
实例属性
由于RTCTransformEvent
基于Event
,因此其属性也可用。
RTCTransformEvent.transformer
只读-
返回与事件关联的
RTCRtpScriptTransformer
。
转换事件类型
只有一种类型的转换事件。
rtctransform
当关联的RTCRtpScriptTransform
构建时,以及每当将新的编码视频或音频帧排队以进行处理时,都会在工作线程全局作用域中触发rtctransform
事件。
可以使用DedicatedWorkerGlobalScope.addEventListener()
或onrtctransform
事件处理程序属性添加rtctransform
事件监听器,以便在新的帧可用时收到通知。
示例
此示例创建了rtctransform
事件的事件监听器。
此示例假设我们有一个TransformStream
,其中包含从主线程中的RTCRtpScriptTransform
构造函数传递的options
对象。代码的末尾显示了如何通过转换流从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 编码转换 # rtctransformevent |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。