Обновление audio.currentTime сбрасывается до 0 - непреднамеренное поведение (Django?) - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь обновить currentTime html-аудиоэлемента, однако он продолжает сбрасываться до 0 независимо от того, какое значение я ему даю.

Я подтвердил, что значения, которые яПрохожу меньше, чем продолжительность аудиофайла, и больше, чем 0. Следующий код работает должным образом локально в html-файле, но демонстрирует это странное поведение в моем приложении Django.

HTML:

<audio id="my-audio" preload="true" src="path/to/file.mp3" type="audio/mp3"></audio>

JavaScript:

var audio = document.getElementById('my-audio')
audio.play()
console.log(audio.currentTime) // result: 0.997171 or similar
console.log(audio.duration) // result 3596.06855
audio.currentTime = 500
console.log(audio.currentTime) // result: 0

Все остальные функции, связанные со звуком, работают.Это странное поведение происходит с несколькими различными аудиофайлами.Я искал SO для решения, но, похоже, ничего не подходит для моего конкретного случая.Я думаю, что это как-то связано с сервером Django для следующего комментария из другого потока .Но я не могу найти больше информации об этом.

Я столкнулся с той же проблемой.Он работает над куском кода, но когда я интегрирую его в приложение Django, он не работает.Он работает в Firefox, но не в Google Chrome.Видео / аудио файл не имеет значения, это происходит с любым файлом, который я пробую в коде.Время, которое я пытаюсь найти, меньше продолжительности видео.

Любая помощь / советы приветствуются.Спасибо за чтение.

* Редактировать: я могу подтвердить, что это не проблема в Firefox, и это работает как задумано.Я полагаю, что это проблема именно с Chrome.

1 Ответ

0 голосов
/ 10 декабря 2018

Для тех, кто борется с той же проблемой.Я загружал медиаресурсы в мой статический каталог через django-admin.По некоторым причинам (только в chrome) в моих ресурсах отсутствовали необходимые заголовки: Accept-Ranges: bytes и Content-Range: bytes <some bytes>/<total bytes>.Я не смог найти более простое решение, поэтому я направил свои загрузки файлов на публикацию в корзину AWS S3, где я мог легко управлять разрешениями / заголовками и т. Д. Я следовал этому учебнику , и реализация была действительно простой.Насколько я понимаю, это (выделенный хостинг нестатических файлов), как правило, то, что должно произойти в любом случае.Я надеюсь, что никто не будет бороться с этим когда-либо снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...