Spec-Zone.ru › Web APIs

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
}

Спецификации

Спецификация
WebRTC Encoded Transform
# dom-rtcencodedaudioframe-getmetadata

Совместимость с браузерами

Рабочие столы Мобильные устройства
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

См. также

  • Использование WebRTC преобразований кодирования

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API