RTCTransformEvent
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Объекты RTCTransformEvent API WebRTC представляют событие, которое генерируется в отдельном потоке (worker), когда закодированная кадр была помещена в очередь для обработки WebRTC Encoded Transform.
Интерфейс имеет свойство transformer, которое предоставляет доступ к потоку для чтения и записи. Поток должен считывать закодированные кадры из transformer.readable, изменять их при необходимости и записывать в transformer.writable в том же порядке без дублирования.
На момент написания документации существует только одно событие, основанное на RTCTransformEvent: rtctransform.
Свойства экземпляра
Так как RTCTransformEvent основано на Event, его свойства также доступны.
-
RTCTransformEvent.transformerТолько для чтения -
Возвращает связанный с событием
RTCRtpScriptTransformer.
Типы событий преобразования
Существует только один тип события преобразования.
rtctransform
Событие rtctransform срабатывает в глобальном контексте потока (worker) при создании связанного RTCRtpScriptTransform, а также каждый раз, когда новый закодированный видео- или аудиокадр помещается в очередь на обработку.
Вы можете добавить обработчик события rtctransform для получения уведомления о доступности нового кадра, используя либо DedicatedWorkerGlobalScope.addEventListener(), либо свойство обработчика событий onrtctransform.
Пример
В этом примере создается обработчик события rtctransform.
Пример предполагает, что у нас есть TransformStream с объектом options, переданным из конструктора RTCRtpScriptTransform в основном потоке. Код в конце показывает, как поток передаётся через преобразовательный поток из readable в writable.
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 |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
RTCTransformEvent |
Нет | Нет | 117 | Нет | 15.4 | Нет | 117 | Нет | 15.4 | Нет | Нет |
transformer |
Нет | Нет | 117 | Нет | 15.4 | Нет | 117 | Нет | 15.4 | Нет | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCTransformEvent