Я пытаюсь установить точную синхронизацию аудиофайлов с помощью HTMLMediaElement.duration. Но в Chrome при воспроизведении файла .ogg за последние пару секунд звука значение длительности меняется. Вот упрощенный пример, который продемонстрировал проблему. Я сгенерировал 5-секундный файл розового шума в формате .ogg, используя Audacity, и использовал его в качестве источника.
<audio id="audio" controls>
<source src="./noise.ogg" type="audio/ogg">
</audio>
Затем записал продолжительность каждого события timeupdate.
audio.addEventListener('timeupdate', function() {
console.log(audio.duration);
})
Сначала онвыдает «5» 10 раз, но затем меняется на «5.000997» еще 11 раз. Другой файл вывел «31.318662» и «31.320816». Что вызывает это?
Связано: Несоответствующая длительность HTMLMediaElement