RTCEncodedVideoFrame: свойство data
Примечание: Эта функция доступна в Посвящённых веб-рабочих потоках.
Свойство data интерфейса RTCEncodedVideoFrame возвращает буфер, содержащий данные кадра.
Значение
An ArrayBuffer.
Примеры
Этот пример преобразования кодированного WebRTC демонстрирует, как получить данные кадра в функции TransformStream transform() и инвертировать все биты.
Функция transform() строит DataView на буфере в свойстве кадра data и также создаёт представление на новом ArrayBuffer. Затем она записывает инвертированные байты исходных данных в новый буфер, присваивает буфер свойству кодированного кадра data и добавляет изменённый кадр в поток.
addEventListener("rtctransform", (event) => {
const transform = new TransformStream({
async transform(encodedFrame, controller) {
// Reconstruct the original frame.
const view = new DataView(encodedFrame.data);
// Construct a new buffer
const newData = new ArrayBuffer(encodedFrame.data.byteLength);
const newView = new DataView(newData);
// Negate all bits in the incoming frame
for (let i = 0; i < encodedFrame.data.byteLength; ++i) {
newView.setInt8(i, ~view.getInt8(i));
}
encodedFrame.data = newData;
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Обратите внимание, что окружающий код описан в Использование преобразований кодированных WebRTC.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
data |
86 | 86 | 117 | 72 | 15.4 | 86 | 117 | 61 | 15.4 | 14.0 | 86 |
См. также
© 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/RTCEncodedVideoFrame/data