Я пытаюсь воспроизвести аудио из определенного места внутри файла, а также получать обновления при воспроизведении с помощью события onTimeUpdate. Я исследую свойство currentTime в обработчике onTimeUpdate, чтобы я мог визуально получать информацию о том, где мы находимся в файле.HTML5 Audio: установка currentTime, а затем воспроизведение на iPhone спонтанно перематывает 50-100 миллисекунд
Проблема заключается в том, что когда я устанавливаю currentTime на известное значение, а затем вызываю play(), первый раз, когда я получаю свойство currentTime в обработчике onTimeUpdate, это будет, как я его установил. Но в следующий раз, когда вызывается onTimeUpdate, это фактически значение меньше, чем я изначально начал играть, иногда более чем на 100 мс меньше!
Например:
player.currentTime = 2.0;
player.play();
Затем выводят player.currentTime из моей onTimeUpdate обработчика:
2
1.95 // WTF??
2.24
2.56
...
Проблема заключается в том, что это вызывает мои виджеты UI, указывающие текущее местоположение в треке прыгать. У меня есть неумелое обходное решение, которое я реализую, но я хотел бы знать, существует ли какой-либо известный способ остановить это, или если я просто не делаю что-то правильно.
Насколько мне известно, это происходит только на iPhone. Я тестирую iPhone 4 и iOS 10.1.1.
Вот демонстрация, если вы хотите увидеть это сами.
http://codepen.io/brianrak/pen/7db413c4431827fe3318e99ae497cf2a?editors=1010
Заранее спасибо!
Хотя этот фрагмент кода может решить вопрос, [включая пояснение] (meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers, //) действительно помогает улучшить качество Ваше сообщение. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! – kayess