Я использую простой стек react с redux. Затем я динамически извлекаю данные с местоположениями видео с google spreadsheet, это означает, что мне нужно импортировать видеофайлы на лету:
//videoType is the name of the row for videos in the spreadsheet
const videoType = 'outVideo';
const videoData = await import(`../../media/${video[videoType]}`);
this.setState({[videoType]: videoData.default});
Это также означает, что видеоресурсы загружаются сразу после рендеринга компонента, но как обещание:
Затем он будет загружен в компонент, и когда придет время, отобразить видео (чтобы у нас были ресурсы, доступные в теге html5video при инициации в элементе:
<div className = "outVideo">
{outVideo !== "" &&
<video
ref = {this[`outVideo${reference}`]}
autoPlay = "autoplay"
playsInline = "playsinline"
>
<source
src = {outVideo}
type = "video/mp4"/>
</video>
}
</div>
Я только что переключился с файлов 800kb на файлы 95mb, и, хотя я их опишу, мне любопытно, почему видео просто отображаются как white space, а видео нет:
Насколько я понимаю, не следует использовать 206
В большинстве браузеров тег видео будет запрашивать диапазон байтов, и правильный ответ - 206. «Белое пространство», скорее всего, не имеет отношения к 206-му.
@bigless причина в том, что они динамически загружаются из электронной таблицы, и мы включаем файлы локально, IE это будет работать в ящике и будет иметь доступ только к localhost для больших ресурсов.
Что означает «включение файлов локально»? Этот импорт - это просто асинхронный GET. Я все еще не понимаю. Почему бы просто не src = "../../media/${video[videoType]}", а затем визуализировать / показать тег видео на событии canplay?
Я использую локальный сервер, поэтому ресурсы обслуживаются с этого локального сервера i localhost, это означает, что, конечно, http захватывает данные, но для этих ресурсов (видео) нет внешнего запроса или необходимости в каком-либо Интернете. Причина, по которой я не могу просто встроить их напрямую, заключается в том, что мне нужно убедиться, что видеофайл существует. в противном случае я удаляю этот tile.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Какая у этого цель? Зачем нужен динамический импорт видеофайла? Этот файл доступен с помощью javascript, поэтому он также доступен из элемента видео html5.