Я пытаюсь загрузить выбранный видеофайл в html5, чтобы пользователь мог просмотреть видео перед отправкой на сервер.
Проблема в том, что при использовании браузеров Chrome и Safari для настольных ПК и мобильных устройств (ios12) он работает только в Chrome для настольных компьютеров.
Обратите внимание, что как только я отправляю этот файл на свой сервер (сохраненный с CarrierWave и загруженный на S3), а затем обновляю видео с новым URL-адресом src, он работает на всех браузерах и устройствах.
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = (e) => {
this.$scope.$applyAsync(() => {
this.filePreview = e.target.result;
})
}
<video class="video-previewer" ng-if="$ctrl.filePreview" width="{{$ctrl.width}}" height="{{$ctrl.height}}" controls playsinline preload="metadata">
<source ng-src="{{$ctrl.filePreview + '#t=0.5'}}" type="video/mp4">
</video>
Ошибка, которую я вижу в журналах сафари на настольном и мобильном устройствах, - это запись строки base64 («data: video / mp4; base64, ... etc ...») и «Не удалось загрузить ресурс: URL-адрес данных» Ошибка декодирования "
Почему не удается декодирование? Спасибо