Spec-Zone.ru › Web APIs

MediaSource: свойство handle

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна только в посвященных веб-воркерах.

Только для чтения handle свойство интерфейса MediaSource возвращает объект MediaSourceHandle, являющийся прокси для MediaSource, который может быть передан из посвященного воркера обратно в основной поток и присоединен к медиаэлементу через его свойство HTMLMediaElement.srcObject.

Примечание: handle отображается только для экземпляров MediaSource внутри посвященных воркеров.

Каждый объект MediaSource созданный внутри посвященного воркера, имеет свой уникальный MediaSourceHandle. Получение handle всегда возвращает экземпляр MediaSourceHandle, специфичный для связанного посвященного воркера MediaSource экземпляра. Если обработчик уже был передан в основной поток с помощью postMessage(), экземпляр обработчика в воркере фактически отсоединяется и больше не может быть передан.

Значение

Экземпляр объекта MediaSourceHandle.

Примеры

Свойство handle может быть обращено внутри посвященного воркера, а полученный объект MediaSourceHandle затем передается в поток, который создал воркер (в данном случае в основной поток) через вызов postMessage():

// Inside dedicated worker
let mediaSource = new MediaSource();
let handle = mediaSource.handle;
// Transfer the handle to the context that created the worker
postMessage({ arg: handle }, [handle]);

mediaSource.addEventListener("sourceopen", () => {
  // Await sourceopen on MediaSource before creating SourceBuffers
  // and populating them with fetched media — MediaSource won't
  // accept creation of SourceBuffers until it is attached to the
  // HTMLMediaElement and its readyState is "open"
});

В основном потоке мы получаем обработчик через обработчик события message, присоединяем его к <video> через его свойство HTMLMediaElement.srcObject и play видео:

worker.addEventListener("message", (msg) => {
  let mediaSourceHandle = msg.data.arg;
  video.srcObject = mediaSourceHandle;
  video.play();
});

Примечание: MediaSourceHandle не могут быть успешно переданы в или через общий воркер или сервис-воркер.

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

Спецификация
Расширения источника медиа™
# dom-mediasource-handle

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
handle 108 108 Нет 94 18 108 Нет 73 18 21.0 108

См. также

  • Демонстрация MSE-in-Workers от Мэтта Воленетца
  • API расширений источника медиа
  • MediaSource
  • SourceBuffer

© 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/MediaSource/handle

Spec-Zone.ru

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