Класс StorageVideoFile
Объектно ориентированное представление файла видео в хранилище.
Пример использования
import {StorageVideoFile} from '@app/storage'
import {jsx} from '@app/html-jsx'
app.html('/', () => {
const hash = 'video_qO398YYhcO.d39.3840x2160.mp4'
const file = new StorageVideoFile(hash)
return <html><body>
<p>Файл {file.hash}</p>
<p>Тип: {file.type}</p>
{file.durationMaybe && <p>
Продолжительность: {
Math.floor(file.duration / 60 / 60)
}:{
Math.floor((file.duration / 60) % 60).toString().padStart(2, '0')
}:{
(file.duration % 60).toString().padStart(2, '0')
}
</p>}
<p>
Параметры width и height заданы:
<img src={file.getThumbnailUrl(100, 100)} />
</p>
<p>
Параметр width задан, height опущен:
<img src={file.getThumbnailUrl(100, undefined)} />
</p>
<p>
Параметр height задан, width опущен:
<img src={file.getThumbnailUrl(undefined, 100)} />
</p>
<p><a href={file.downloadUrl}>Скачать</a></p>
</body></html>
})
Свойства:
- hash - хэш файла.
- type - тип файла. Может быть: file, image, video, audio
- downloadUrl - URL для скачивания файла. Файл будет отдан с HTTP заголовком форсирующим скачивание файла, вместо открытия его в окне браузера. Нет необходимости открывать файл в новой вкладке.
- getThumbnailUrl - URL файла изображения отмасштабированного до заданных параметров. Принимает параметры width и htight. Передать можно оба параметра, или один из. Если переданы оба параметра, на стороне сервера, изображение будет вписано в размер по принципу object-fit: contain. Если передан только один параметр, второй будет расчитан автоматически, с сохранением пропорций изображения. Параметры:
- width - ширина изображения в пикселях
- height - высота изображения в пикселях
- getThumbnailSrc - используется для формирования параметра src блока <img> AppUi.
- width - ширина исходного видео. Если не известна, выбросит исключение.
- widthMaybe - ширина исходного видео. Если не известна, вернёт undefined.
- height - высота исходного видео. Если не известна, выбросит исключение.
- heightMaybe - высота исходного видео. Если не известна, вернёт undefined.
- sizes - размер исходного видео { width: number, height: number }. Если не известен, выбросит исключение.
- sizesMaybe - размер исходного видео { width: number, height: number }. Если не известна, вернёт undefined.
- progress - прогресс обработки видео. Number в диапазоне от 0 до 100.
- status - статус обработки видео. 'done' | 'processing' | 'error'.
- duration - продолжительность видео файла в секундах. Если не известна, выбросит исключение.
- durationMaybe - продолжительность видео файла в секундах. Если не известна, вернёт undefined.