приведенный выше код вводился в консоле, при установке атрибута preload='metadta', по идее должна загружаться информация об аудио файле, но при подключении по мобильной сети этого не происходит. После пары часов копания в коде, нашел свою ошибку при которой при событие ondurationchange время устанавливалось через раз.