RTCTransformEvent
RTCTransformEvent 是 WebRTC API 的一部分,它表示当一个编码帧已被排队等待由 WebRTC Encoded Transform 进行处理时所触发的事件。
该接口有一个 transformer 属性,该属性暴露了一个可读流和一个可写流。工作线程应从 transformer.readable 读取编码帧,根据需要进行修改,然后将它们按相同顺序且无重复地写入 transformer.writable。
在撰写本文时,只有一种基于 RTCTransformEvent 的事件:rtctransform。
实例属性
由于 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 |
浏览器兼容性
加载中…