В прошлом вы могли использовать URL.createObjectURL()
и передавать его MediaStream.Тем не менее, это было удалено (см. https://www.fxsitecompat.dev/en-CA/docs/2017/url-createobjecturl-stream-has-been-deprecated/).
Функция замены заключалась в том, чтобы вместо этого использовать HTMLMediaElement.srcObject
. Это хорошая работа для покрытия видео корпуса.
Однако, HTMLImageElement
не наследуется от HTMLMediaElement
. У него также нет srcObject.
В моем конкретном случае я разрабатываю плагин FireFox, который использует функциональность потока фильтра WebRequest для преобразования изображений. С этим API я получаюArrayBuffer куски данных. Я хотел бы иметь возможность передавать их по мере их получения на Image()
, который декодирует их на лету, а не просто накапливает их, превращает их в BLOB-объекты и затем преобразует в URL с помощью URL.createObjectURL(blob)
.
Есть ли способ, которым я могу выполнить это в потоковом режиме?
(Примечание 1: я согласен с решением для FireFox, если это необходимо.)
(Примечание 2: я попытался установить HTMLVideoElement
src, например, PNG, но кажется, что элемент видео действительно требователен и поддерживает только видео форматы, а не кадры. Если бы я мог получить HTMLVideoElement.srcObject
to загрузить фотоснимки, что также может сделать возможным решение на основе MediaStream).