Почему audio.duration у audio с файлом типа ogg всегда равен infinity?

возникла следующая задача: При загрузке элемента аудио с типом файла audio/ogg любые попытки получить duration возвращают Infinity Duration определяется только (замерил на нескольких файлах) после ровно половины проигранной дорожки Подскажите пожалуйста, почему так происходит? Й


Ответы (1 шт):

Автор решения: Опан

Как Вы замеряли? Сразу после загрузки элемента аудио браузер не успевает прочитать аудиоданные из файла и выдаёт NaN. Это можно вставить в функцию нажатия на воспроизведение, клик на другой элемент и др. В этом примере duration показывается по клику в любое место страницы:

<audio id=audio src="http://opan.strana.de/stack/sud.ogg" controls></audio>
<script>
console.log(audio.duration); // не успевает прочитать файл
audio.onplay = () => console.log(audio.duration);
document.onclick = () => console.log(audio.duration);
</script>

А МП3 это или OGG, рояли не играет.

→ Ссылка