APIs HTML5 permettant de lire des fichiers audio et vidéo directement dans la page à travers des balises <audio> et <video> sans utiliser Flash
<audio src="audio.mp3"></audio>
Message de fallback pour les visiteurs dont le navigateur ne supporte pas l'audio
<audio src="audio.mp3">
Your browser doesn't support video API
</audio>
Quelques attributs
<audio
src="audio.mp3"
autoplay="autoplay"
loop="loop"
controls="controls"
></audio>
Il est possible d'envoyer plusieurs formats et de laisser le navigateur choisir celui qu'il préfère
<audio autoplay="autoplay" loop="loop" controls="controls">
Your browser doesn't support audio API
</audio>
Can I Use : http://caniuse.com/#feat=audio
Comme l'API audio mais on remplace par video...
Le plus simple
<video src="video.mp4"></video>
Message de fallback pour les visiteurs dont le navigateur ne supporte pas la vidéo
<video src="video.mp4">
Your browser doesn't support video API
</video>
Avec quelques attributs
<video
src="video.mp4"
poster="image.jpg"
autoplay="autoplay"
loop="loop"
controls="controls"
width="800"
height="600"
></video>
Il est possible d'envoyer plusieurs formats et de laisser le navigateur choisir celui qu'il préfère
<video autoplay="autoplay" loop="loop" controls="controls" width="800">
<source src="video.mp4" type="video/mp4" />
<source src="video.webm" type="video/webm" />
<source src="video.ogv" type="video/ogg" />
Your browser doesn't support video API
</video>
Can I Use : http://caniuse.com/#feat=video
Avant tout, il faut récupérer l'élément.
En JS, il existe plusieurs façon de récupérer un élément HTML
var video = document.getElementsByTagName('video')[0]; // Renvoie un tableau
var video = document.getElementById('video'); // Suppose que l'ID a bien été rajouté en HTML
var video = document.querySelector('.video'); // Suppose que la classe à bien été rajoutée en HTML
Une fois récupéré, on va pouvoir utiliser ses méthodes et modifier ses propriétés
Fonctions que l'on peut appliquer
video.play();
video.pause();
video.load();
Informations que l'on peut obtenir et modifier
console.log(video.volume);
video.volume += 0.1;
Évenements que l'on peut écouter
video.addEventListener('play',function(e)
{
console.log('playing');
});
Liste complète : http://www.w3schools.com/tags/ref_av_dom.asp
Écouter l'événement "click" sur un bouton pour augmenter le volume sans dépasser la limite
<video src="#"></video>
<button id="volume-up">+</button>
// Récupérer les éléments
var video = document.getElementById('video'),
volume_up = document.getElementById('volume-up');
// Écouter les clicks
volume_up.onclick = function()
{
// Met à jour le volume
if(video.volume + 0.1 <= 1)
video.volume += 0.1;
else
video.volume = 1;
};
Écouter l'événement "click" sur une div pour changer la position de la lecture
(CSS non inclus)
<video src="#"></video>
// Récupérer les éléments
var video = document.getElementById('video'),
bar = document.getElementById('bar');
// Écouter les clicks
bar.onclick = function(e)
{
// Calculer le temps de la vidéo par rapport à la position du click sur la bar
var ratio = e.offsetX / bar.offsetWidth,
current = video.duration * ratio;
// Met à jour la lecture de la vidéo
video.currentTime = current;
};
Mettre à jour le curseur d'une barre en fonction de l'avancement dans la vidéo
(CSS non inclus)
<video src="#"></video>
// Récupérer les éléments
var video = document.getElementById('video'),
bar = document.getElementById('bar'),
cursor = document.getElementById('cursor');
// Executer cette fonction toutes les 50ms
window.setInterval(function()
{
// Calcul le pourcentage de vidéo déjà passé
var percent = (video.currentTime / video.duration) * 100;
// Met à jour la bar de lecture
cursor.style.width = percent + '%';
},50);