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.

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании