Что-то не врублюсь почему с вызовом через таймер условие this.currentTime > this.duration * .1 срабатывает дважды (проигрывает через один), если наступление события timeupdate можно еще как-то было объяснить, то с условием не понять.
<audio id="my" controls=""></audio>
<div id="fl"></div>
<script>
var host = 'https://fotodushi.ru/mus/',
mp3 = [
'muzdushi/01La_Belle_Mixtape-Summer_Memories_O_Henri_Pfr.mp3',
'muzdushi/02Oliver_Shanti-Sacral_Nirvana.mp3',
'muzdushi/03Eroticheskiy_saksofon-Melodiya_lubvi.mp3',
'muzdushi2/15Anugama-Rhythm_Of_Love.mp3',
'muzdushi2/16Rondo_Veneziano-Musica_Fantasia.mp3',
'muzzhizni/15-Tango_Orchester_Alfred_Hause-La_Cumparsita.mp3',
'classic/01-Mihail_Oginskiy-Polonez.mp3',
'muzlove/01-Mehdi-Guiding_Light.mp3',
'muzlove/15-Elman_Namazoglu-Mehebbetim.mp3',
'engsong8090/11_Chris_Rea-And_you_my_love.mp3',
'krugosvet/01_Petr_Chaykovskiy-Chanson_triste.mp3',
'france/09_Barimar-A_Paris.mp3',
'france/16_Salvatore_Adamo-Tombe_la_neige.mp3',
'italia/01_Biagio_Antonacci-Pazzo_Di_Lei.mp3',
'russia/19_Aleksey_Arhipovskiy-Zolushka.mp3',
'enigma/03_Enigma-Mea_Culpa_Part_II_(Fading_Shades_Mix).mp3'
], mp = document.getElementById('my'), f = document.getElementById('fl'), n = -1;
mp.addEventListener("canplay", function() {
this.play()
}, true);
mp.addEventListener("timeupdate", function() {
if(this.currentTime > this.duration * .1) {
console.log(1)
this.pause();
this.currentTime = 0;
setTimeout(timer, 1000);
}
});
function timer() {
n = Math.ceil(++n % mp3.length);
f.textContent = (n+1) + ' >> ' + mp3[n].split('/').pop();
mp.src = host + mp3[n];
}
timer();
</script>
Все ясно, нужно позицию в начало.