StorageImageFile
Класс-обёртка для удобной работы с идентификаторами-хешами файлов видео-роликов, загруженных в медиа-хранилище.
Экземплярами класса StorageVideoFile представлены runtime-значения полей heap-таблиц, объявленных через Heap.VideoFile и Heap.File (только для видео-файлов).
Также может быть использован для удобной работы с загруженными файлами изображений вне контекста хипа.
Применение/сигнатура
import { StorageVideoFile } from '@app/storage'
const file = new StorageVideoFile(hash)
Свойства и методы
Все свойства базового класса StorageFile (только type всегда возвращает video) + ...
videoSrc: Promise<{ mp4?, hls?, width?, height? }>
Возвращает объект с абсолютными URL и размерами видеопотока в формате, принимаемым свойством src блока video.
getThumbnailUrl(width?: number, height?: number, offsetSeconds?: 'auto' | number): string
-
Возвращает абсолютный URL изображения кадра из видеопотока с учётом заданных размеров и смещения времени.
-
Если оба размера не заданы, то используется оригинальный размер видеопотока.
-
Если задан один из размеров, второй подбирается автоматически в соответствии с оригинальной пропорцией.
-
Если заданы оба размера, то миниатюра обрезается в соответствие с правилом "cover" - изображение обрезается с обоих сторон либо по вертикали либо по горизонтали в зависимости от пропорций.
-
-
width:
number | undefined
ширина требуемой миниатюры в пикселях -
height:
number | undefined
высота требуемой миниатюры в пикселях -
offsetSeconds:
'auto' | number | undefined
смещение кадра в секундах относительно начала ролика, поддерживает дробные значения
getThumbnailSrc(width?: number, height?: number, offsetSeconds?: 'auto' | number): { url, width?, height? }
-
Возвращает объект с абсолютным URL и размерами миниатюры изображения в формате, принимаемым свойством
srcблока video с учётом заданных размеров.-
Если оба размера не заданы, то используется оригинальный размер изображения.
-
Если задан один из размеров, второй подбирается автоматически в соответствии с оригинальной пропорцией.
-
Если заданы оба размера, то миниатюра обрезается в соответствие с правилом "cover" - изображение обрезается с обоих сторон либо по вертикали либо по горизонтали в зависимости от пропорций.
-
-
width:
number | undefined
ширина требуемой миниатюры в пикселях -
height:
number | undefined
высота требуемой миниатюры в пикселях -
offsetSeconds:
'auto' | number | undefined
смещение кадра в секундах относительно начала ролика, поддерживает дробные значения
width: number
"Строгая" ширина изображения в пикселях, определяется из свойства hash. Если по какой-либо причине ширина не может быть определена, то при обращении будет брошено соответствующее исключение.
widthMaybe: number | undefined
"Нестрогая" ширина изображения в пикселях, определяется из свойства hash. Возвращает undefined, если по какой-либо причине ширина не может быть определена.
height: number
"Строгая" высота изображения в пикселях, определяется из свойства hash. Если по какой-либо причине высота не может быть определена, то при обращении будет брошено соответствующее исключение.
heightMaybe: number | undefined
"Нестрогая" высота изображения в пикселях, определяется из свойства hash. Возвращает undefined, если по какой-либо причине высота не может быть определена.
sizes: { width: number, height: number }
"Строгие" размеры изображения в пикселях, определяются из свойства hash. Если по какой-либо причине размеры не могут быть определены, то при обращении будет брошено соответствующее исключение.
sizesMaybe: { width: number, height: number } | undefined
"Нестрогие" размеры изображения в пикселях, определяются из свойства hash. Возвращает undefined, если по какой-либо причине размеры не могут быть определены.
duration: number
"Строгая" длина ролика в секундах, определяется из свойства hash. Если по какой-либо причине длина не может быть определена, то при обращении будет брошено соответствующее исключение.
durationMaybe: number | undefined
"Нестрогая" длина ролика в секундах, определяется из свойства hash. Возвращает undefined, если по какой-либо причине длина не может быть определена.
status: Promise<'done' | 'processing' | 'error'>\
-
Текущий статус обработки видео.
-
Видео-файлы становятся доступны для скачивания не сразу после загрузки, поскольку проходят специальных процесс кодирования в хранилище.
done— файл готов, можно использовать.processing— файл в процессе кодирования, текущий прогресс можно узнать из свойстваprogress.error— во время кодирования произошла ошибка, вероятно - несовместимый формат файла.
progress: Promise<number>
Число от 0 до 100, обозначающее текущий процент завершения процесса кодирования при status=processing.
