Bonjour à tous (ça faisait un petit moment !),
Je m’entraîne à créer un player audio personnalisé avec l'api HTMLMediaElement.
Voici un pen pour voir le contexte : audio player with HTMLMediaElement
Je crée donc un template pour le lecteur :
Jusque là tout va bien. Puis, toujours dans la boucle for, j'essaye de récupérer la durée totale de la musique pour l'afficher dans mon player, en essayant de prendre en compte le fait que l'élément audio doit être chargé pour être lu :
Et là, ça se corse, je n'arrive pas à récupérer l'info :
Où est mon erreur ?
Modifié par Olivier C (16 Jul 2021 - 13:01)
Je m’entraîne à créer un player audio personnalisé avec l'api HTMLMediaElement.
Voici un pen pour voir le contexte : audio player with HTMLMediaElement
Je crée donc un template pour le lecteur :
const addAudioPlayer = (() => {
let i = 0
for (const audio of audios) {
i++
const player = `<div class="audio-player"><button class="audio-play-pause"><svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024"><path d="M204.524 102.03L819.48 512 204.523 921.97z"/></svg></button><output class="audio-player-current-time">0:00</output><div class="progress"></div><output class="audio-player-duration">0:00</output><div><button onclick="document.document.getElementById('audio-player${i}')[0].volume += 0.1">+</button><button onclick="document.getElementById('audio-player${i}')[0].volume -= 0.1">-</button></div></div>`
audio.id = 'audio-player' + i
audio.insertAdjacentHTML('afterend', player)
}
})()
Jusque là tout va bien. Puis, toujours dans la boucle for, j'essaye de récupérer la durée totale de la musique pour l'afficher dans mon player, en essayant de prendre en compte le fait que l'élément audio doit être chargé pour être lu :
audio.addEventListener('loadedmetadata', audioDuration(audio, player, i))
Et là, ça se corse, je n'arrive pas à récupérer l'info :
NaN:NaN:NaN
Où est mon erreur ?
Modifié par Olivier C (16 Jul 2021 - 13:01)