RTCRtpScriptTransformer: свойство writable
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Свойство writable только для чтения интерфейса RTCRtpScriptTransformer возвращает экземпляр WritableStream, который может использоваться в качестве приемника закодированных кадров медиаданных, поставленных в очередь на соответствующем RTCRtpScriptTransformer.readable.
Когда соответствующий RTCRtpScriptTransform вставлен в конвейеры отправителя и получателя WebRTC, закодированные кадры медиаданных (RTCEncodedVideoFrame или RTCEncodedAudioFrame) могут быть поставлены в очередь на RTCRtpScriptTransformer.readable. ВебRTC-трансформатор может считывать кадры из readable, изменять их по мере необходимости и затем отправлять обратно в конвейер WebRTC, отправив их в этот writable. Общий способ выполнения этой операции — передать кадры через TransformStream.
Значение
Объект WritableStream.
Примеры
В следующем примере показано, как RTCRtpScriptTransformer.readable передаётся через TransformStream для RTCRtpScriptTransformer.writable.
addEventListener("rtctransform", (event) => {
let transform;
// Select a transform based on passed options
if (event.transformer.options.name == "senderTransform")
transform = createSenderTransform(); // A TransformStream
else if (event.transformer.options.name == "receiverTransform")
transform = createReceiverTransform(); // A TransformStream
else return;
// Pipe frames from the readable to writeable through TransformStream
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Код реализует обработчик события rtctransform, которое срабатывает в глобальном объекте worker при создании соответствующего RTCRtpScriptTransform и при добавлении новых кадров в очередь для обработки. event.transformer — это RTCRtpScriptTransformer, имеющий свойства writable и readable.
Создаётся другой TransformStream для обработки исходящих и входящих кадров, используя createSenderTransform() или createReceiverTransform(), соответственно (реализация не показана). Обработчик событий выбирает правильный transform stream для использования на основе опций, переданных через RTCRtpScriptTransform конструктор, и присваивает его transform.
Код вызывает ReadableStream.pipeThrough() на readable для передачи закодированных кадров через выбранный TransformStream, а затем ReadableStream.pipeTo(), чтобы передать их в RTCRtpScriptTransformer.writable.
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
writable |
Нет | Нет | 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/RTCRtpScriptTransformer/writable