Audio et Vidéo
Aujourd’hui, l’intégration du son et de la vidéo passe par les balises HTML5 <audio>
et <video>
, combinées aux API JavaScript et aux bonnes pratiques d’accessibilité.*
Balise <audio>
Section intitulée « Balise <audio> »<audio controls> <source src="musique.mp3" type="audio/mpeg"> <source src="musique.ogg" type="audio/ogg"> Votre navigateur ne supporte pas la balise audio.</audio>
Attributs importants
Section intitulée « Attributs importants »controls
: affiche les contrôles du player.autoplay
: démarre automatiquement (souvent bloqué par les navigateurs sansmuted
).loop
: répète automatiquement.muted
: démarre en sourdine (nécessaire pourautoplay
).preload
: suggère comment charger le média (auto
,metadata
,none
).
Balise <video>
Section intitulée « Balise <video> »<video width="640" height="360" controls> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <track src="sous-titres.vtt" kind="subtitles" srclang="fr" label="Français"> Votre navigateur ne supporte pas la balise vidéo.</video>
Attributs importants
Section intitulée « Attributs importants »controls
: affiche les contrôles.autoplay
: démarre automatiquement (souvent bloqué sansmuted
).loop
: rejoue la vidéo en continu.muted
: démarre sans son (obligatoire pourautoplay
).poster
: définit une image affichée avant la lecture.<track>
: permet d’ajouter des sous-titres (format WebVTT).
Accessibilité
Section intitulée « Accessibilité »- Sous-titres : toujours prévoir un fichier
.vtt
avec<track>
pour les vidéos. - Transcription : proposer une version texte pour les contenus audio.
- Contrôles clavier : s’assurer que le player est utilisable sans souris.
- ARIA : ajouter des attributs comme aria-label pour décrire le média si nécessaire.
API JavaScript
Section intitulée « API JavaScript »Les deux balises exposent une API DOM commune (HTMLMediaElement) :
Exemple de contrôle vidéo en JavaScript :
const video = document.querySelector("video");
// Lecture et pausevideo.play();video.pause();
// Contrôle du volumevideo.volume = 0.5;
// Avancer dans la vidéovideo.currentTime = 30; // saute à 30s
// Vérifier si la vidéo est en cours de lectureif (!video.paused) { console.log("Vidéo en lecture");}
À retenir
Section intitulée « À retenir »play-during
et les anciennes propriétés CSS audio sont obsolètes.- Utiliser
<audio>
et<video>
pour un support moderne, accessible et cross-browser. - Fournir plusieurs formats (
.mp4
,.webm
,.ogg
) pour assurer la compatibilité. - Prévoir des sous-titres et des transcriptions pour l’accessibilité.
- Les API JavaScript permettent de créer des players personnalisés (contrôles, playlists, synchronisation).