Bonjour,

J'ai un problème avec l'usage de la balise "video" : je ne parviens pas à faire afficher un texte alternatif en cas de non support du format du fichier spécifié dans la balise "source".

Voici le code html :


<!DOCTYPE html>
<html>
<body>
	<video controls="controls">
		<source src="./test.flv" type="video/x-flv" />
		<p>Texte alternatif.</p>
	</video>
</body>
</html>


Évidemment, le format flv n'est pas supporté, mais par exemple dans firefox 23 au lieu d'avoir le bloc "p" d'affiché, j'ai le cadre du lecteur avec écrit "Aucune vidéo dont le format ou type mime est géré n'a été trouvé" (avec chrome, c'est pareil, sauf que je n'ai aucun message, juste le player avec un fond noir).

=> Ce que je souhaite, c'est que dans le cas où, précisément, aucune video dont le format est géré n'a été trouvé, soit affiché le contenu alternatif.

J'ai cherché un peu partout, mais je n'ai trouvé personne rencontrant ce problème. Je suppose donc que je dois passer à côté de quelque chose d'évident, mais quoi ?

Batoche
Pour ton problème, j'ai plusieurs choses à te faire corriger :
- la première et d'enlever les balises <p> qui entourent ton texte alternatif. Je pense que tu n'en as pas besoin.
- La deuxième chose est de mettre des attributs "width" et "height" dans ta balise vidéo. comme ceci :
<video width="640" height="360" controls="true">
.
- ensuite tu mets une vidéo autre qu'un flv (un mp4 par exemple), et je pense que tu n'auras plus d'erreur.

N'hésite pas si tu as encore un message d'erreur après cela.
Merci pour ta réponse,

donc je viens de corriger mon test comme tu me le conseilles, sauf que si je mets une source mp4, la lecture fonctionne car que le format est bien supporté.
J'ai donc du coup testé avec un avi (xvid+mp3) puis un mkv (h264+ac3), mais j'ai le même problème : j'ai un player vide et le texte alternatif n'est pas affiché.

Voici mon code modifié :

<!DOCTYPE html>
<html>
<body>
	<video  width="640" height="360" controls="true">
		<source src="./test.mkv" type="video/x-matroska" />
		<source src="./test.flv" type="video/x-flv" />
		Texte alternatif.
	</video>
</body>
</html>


Je ne pige vraiment pas pourquoi ça fait ça Smiley confus
Si ça peut être utile, voici ce qu'indique la console de firefox


GET  http://clemrem.dyndns.org/test.html  [HTTP/1.1 200 OK 202ms]
L'attribut « type » spécifié sur « video/x-matroska » n'est pas géré. Le chargement de la ressource média ./test.mkv a échoué. 
L'attribut « type » spécifié sur « video/x-flv » n'est pas géré. Le chargement de la ressource média ./test.flv a échoué.
Le chargement de toutes les ressources possibles a échoué. Le chargement du média a été arrêté.


Et aussi, je viens de trouver un mp4 qui ne marche pas sous chrome (ça doit venir de l'audio qui est en mp3 au lieu de aac), histoire de tester avec un conteneur normalement bien supporté, et bien ça fait pareil j'ai bien mes deux balises sources, une avec mp4 et une avec flv, et toujours pas de message alternatif, alors que le player n'est pas capable de lancer la video.

Donc voilà, dans le cas suivant, ça ne fonctionne pas non plus (j'ai rajouté un title et le charset au cas où) :

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8" />
	<title>test</title>
</head>
<body>
	<video  width="640" height="360" controls="true">
		<source src="./test.mp4" type="video/mp4" />
		<source src="./test.flv" type="video/x-flv" />
		Texte alternatif.
	</video>
</body>
</html>


Smiley bawling
Bonjour,

Je sais que les flv et les mkv ne marchent pas avec la balise vidéo.
Les seuls vidéos qui marchent sont aux formats mp4, webm et ogv.
Et encore, ces 3 formats ne marchent pas sur tous les navigateurs, et pas forcément les mêmes non plus.

Je te conseille ce lien qui traite de la vidéo et de l'audio.
Je suis sur et certain que ce lien va t'aider, il va te donner des informations que tu ne connais pas.
Ce n'est pas pour lire une video que je rencontre un problème, c'est pour utiliser la fonction censée afficher un contenu alternatif dans le cas où, justement, la video ne peut pas être lue,

C'est pour ça que j’emploie des formats non reconnus (d'ailleurs, le conteneur mkv est supporté par chrome)

En fait, mon but est d'afficher un lecteur video flash dans les cas où le format n'est pas reconnu par le navigateur, je comptais placer ce lecteur à la place du message alternatif, que je n'arrive pas à faire afficher.

Mais d'après ton lien sur le SDZ, je crois comprendre que le texte alternatif ne s'affiche que si la balise video en elle même n'est pas prise en charge par le navigateur, ce qui semble être une bonne raison au fait que je ne parvienne pas à l'obtenir.

Mais du coup, je pense avoir trouvé une solution à base de javascript : la propriété "canPlayType" de la balise video indique si un des types mime indiqués dans les balises source est supporté, et l’évènement "error" des balises sources permettent de savoir si la lecture d'une video échoue, alors que le type mime est censé être supporté.
Administrateur
Le texte alternatif ne sera affiché que si le navigateur ne reconnaît pas la balise <video>. Cela n'a rien à voir avec le fait d'utiliser l'un ou l'autre fichier décodable (flv, avi, mp4).

Comme Firefox reconnaît l'élément, il l'interprète et essaie de s'en servir. Tout comme le feront les autres navigateurs.
Je rebondis sur ce que dis dew.
Si tu as de vieux navigateurs d'il y a 3-4 ans, le texte alternatif sera affiché. Sinon, non.