Bonsoir,
Ce sujet est dans la suite de celui-ci et de celui-là dans lesquels j'explique me démener pour construire un player audio/vidéo HTML5.
Je teste encore un peu mais je suis grosso-modo arrivé à une version de base pour mon player, à un détail près : j'aimerais faire un traitement des erreurs. Ce gestionnaire d'erreurs ajoute en retour une classe "error" sur le player (pour le style), accompagné d'un attribut "inert" et d'un message d'erreur.
Le problème c'est que j'ai l'impression de me retrouver au même point que mon premier topic sur le sujet où j'avais évoqué un problème de lecture des métadonnées. J'ai simulé un fichier audio HTML5 avec un lien mort, mais mon gestionnaire d'erreur ne se déclenche qu'une fois sur 4 ou 5 chargements de page :
Vous retrouverez le script dans son contexte complet sur cette page github.
La page de démonstration : Media Players.
Je suis un peu coincé, j'en appelle donc à votre bon vouloir
Modifié par Olivier C (24 Apr 2023 - 06:10)
Ce sujet est dans la suite de celui-ci et de celui-là dans lesquels j'explique me démener pour construire un player audio/vidéo HTML5.
Je teste encore un peu mais je suis grosso-modo arrivé à une version de base pour mon player, à un détail près : j'aimerais faire un traitement des erreurs. Ce gestionnaire d'erreurs ajoute en retour une classe "error" sur le player (pour le style), accompagné d'un attribut "inert" et d'un message d'erreur.
Le problème c'est que j'ai l'impression de me retrouver au même point que mon premier topic sur le sujet où j'avais évoqué un problème de lecture des métadonnées. J'ai simulé un fichier audio HTML5 avec un lien mort, mais mon gestionnaire d'erreur ne se déclenche qu'une fois sur 4 ou 5 chargements de page :
media.addEventListener('error', () => {
player.setAttribute('inert', '')
player.classList.add('error')
if (media.error.code === 1) time.innerHTML = 'Error: ressource loading aborted'
else if (media.error.code === 2) time.innerHTML = 'no network'
else if (media.error.code === 3) time.innerHTML = 'resource decoding failed'
else if (media.error.code === 4) time.innerHTML = 'Error: unsupported resource'
else time.innerHTML = 'Error'
}, true)
Vous retrouverez le script dans son contexte complet sur cette page github.
La page de démonstration : Media Players.
Je suis un peu coincé, j'en appelle donc à votre bon vouloir
Modifié par Olivier C (24 Apr 2023 - 06:10)