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 |
См. также
© 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