Как реализовать автоматическую смену источника видео в зависимости от выбранного файла?

Почему не работает смена источника видео в теге video на iOS 6? При выборе видео через input, появляется ошибка. При использовании VarOpt.id = URL.createObjectURL(document.querySelector("input").files[i]); видео вообще не загружается в тег video. 
Скриншот ошибки: [вставить скриншот ошибки]
Изображение к вопросу
  • 15 октября 2023 г. 8:18
Ответы на вопрос 2
1. Для реализации автоматической смены источника видео в зависимости от выбранного файла вы можете использовать JavaScript. Вот пример простого кода:

HTML:
```html
<input type="file" id="fileInput">
<video id="videoPlayer" controls>
  <source src="" type="video/mp4">
</video>
```

JavaScript:
```javascript
const fileInput = document.getElementById('fileInput');
const videoPlayer = document.getElementById('videoPlayer');

fileInput.addEventListener('change', function() {
  const fileURL = URL.createObjectURL(this.files[0]);
  videoPlayer.src = fileURL;
});
```

2. По поводу ошибки при смене источника видео в теге `<video>` на iOS 6, возможно, проблема связана с тем, что в этой версии iOS не поддерживается использование `URL.createObjectURL()`. Вместо этого вы можете использовать `FileReader` для чтения содержимого файла в виде базовой 64-строки и установки этой строки в качестве источника видео:

JavaScript:
```javascript
const fileInput = document.querySelector('input');
const videoPlayer = document.querySelector('video');

fileInput.addEventListener('change', function() {
  const file = this.files[0];
  const reader = new FileReader();
  
  reader.onload = function(event) {
    videoPlayer.src = event.target.result;
  };
  
  reader.readAsDataURL(file);
});
```

Вы можете попробовать использовать этот код вместо `URL.createObjectURL()`, и он должен работать на iOS 6.
IOS 6 не поддерживает метод "URL.createObjectURL()". Вместо него вы можете использовать функцию SelectFileChange(), которая принимает файл, выбранный в инпуте, и отображает его в видео-элементе. Вот пример кода:

```
function SelectFileChange() {
  var file = document.querySelector("input").files[document.querySelector("select").selectedIndex];
  
  var reader = new FileReader();
  reader.onload = function(e) {
    document.querySelector("video").src = e.target.result;
  };
  
  reader.readAsDataURL(file);
}
```

Вы можете использовать этот код вместо использования `URL.createObjectURL()` в IOS 6.
Похожие вопросы