Я у себя сделал вот так: на событие timeupdate повесил обработчик который при наступлении события (и в случае если плеер играет) перезапускает отложенный вызов функции (через clearTimeout / setTimeout) в которой я запускаю отображение индикатора загрузки данных.
На мой взгляд работает как и должно.