RTCEncodedAudioFrame: метод getMetadata()
Примечание: Данная функция доступна в Посвященных веб-воркерах.
Метод getMetadata() интерфейса RTCEncodedAudioFrame возвращает объект, содержащий метаданные, связанные с кадром.
Это включает информацию о кадре, включая используемое аудиокодирование, источник синхронизации и источники-участники, а также порядковый номер (для входящих кадров).
Синтаксис
getMetadata()
Параметры
Нет.
Возвращаемое значение
Объект со следующими свойствами:
synchronizationSource-
Положительное целое число, указывающее источник синхронизации («ssrc») потока пакетов RTP, описываемых этим кадром. Источник может быть, например, микрофоном или приложением микшера, объединяющим несколько источников. Все пакеты от одного источника используют один и тот же источник времени и последовательность, и, следовательно, могут быть упорядочены относительно друг друга. Обратите внимание, что два кадра с одним и тем же значением относятся к одному и тому же источнику.
payloadType-
Положительное целое число в диапазоне от 0 до 127, описывающее формат полезной нагрузки RTP. Сопоставление значений с форматами определено в RFC3550, а более конкретно в разделе 6: Определения типов полезной нагрузки RFC3551.
contributingSources-
Arrayисточников (ssrc), которые внесли вклад в кадр. Рассмотрим случай приложения конференц-связи, объединяющего аудио от нескольких пользователей.synchronizationSourceбудет включать ssrc приложения, в то время какcontributingSourcesбудет включать значения ssrc всех отдельных источников звука. sequenceNumber-
Порядковый номер входящего аудиокадра (не используется для исходящих кадров), который может быть использован для восстановления исходного порядка отправки кадров. Это число между 0 и 32767. Обратите внимание, что, хотя числа распределяются последовательно при отправке, они будут переполняться при достижении 32767 и возобновятся с 0. Таким образом, для сравнения двух порядковых номеров кадров, чтобы определить, следует ли считать один после другого, необходимо использовать арифметику порядковых номеров.
Примеры
В этом примере реализации преобразования кодирования WebRTC показано, как получить метаданные кадра в функции transform() и вывести их в лог.
addEventListener("rtctransform", (event) => {
const async transform = new TransformStream({
async transform(encodedFrame, controller) {
// Get the metadata and log
const frameMetaData = encodedFrame.getMetadata();
console.log(frameMetaData)
// Enqueue the frame without modifying
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Результат для локального микрофона может выглядеть как показано ниже. Обратите внимание, что нет источников-участников, так как есть только один источник, и нет sequenceNumber , так как это исходящий кадр.
{
"payloadType": 109,
"synchronizationSource": 1876443470
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getMetadata |
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/RTCEncodedAudioFrame/getMetadata