8 août 2014

Contrôler le lecteur vidéo HTML5 avec JavaScript

8.8.14 - 0

En plus des contrôles intégrés, nous pouvons également contrôler une vidéo avec la nouvelle API médias de HTML5.
Contrôler le lecteur vidéo HTML5 avec JavaScript
Contrôler le lecteur vidéo HTML5 avec JavaScript
Detection:
Détecter si le navigateur support les balise <video> et <audio> est simple (Feature Detection HTML5).
Nous avons seulement besoin de déterminer si la méthode "canPlayType" est disponible.
Si le navigateur reconnaît la balise <video>, il a également reconnaît la balise <audio>. 
Tous les navigateurs qui reconnaissent une, sera également reconnaître l'autre.
if ( 'canPlayType' in document.createElement('video') ) {
  // Code
}
if ( 'canPlayType' in document.createElement('audio') ) {
  // Code
}
Ou bien:
var supportMedia = (function() {
  return ('canPlayType' in document.createElement('video'));
})();
if ( supportMedia ) { 
  // Code
}
Si vous utilisez Modernizr, vous pouvez écrit:
if ( Modernizr.video ) { ... }
if ( Modernizr.audio ) { ... }
Dans certains cas, il est aussi utile de déterminer si les navigateurs reconnaissent un codec particulier(mp4, webm, ogg, ...). Est-il possible?
Oui bien sûre. Modernizr fournit une solution élégante. Par exemple:
Modernizr.video  // navigateur prend en charge la balise video
Modernizr.video.webm // navigateur prend en charge le format WebM
Modernizr.video.h264 // navigateur prend en charge le format H.264
Les API HTML5 audio et vidéo sont identiques. Donc on pourra tester le support de l'audio avec:
Modernizr.audio.mp3
Modernizr.audio.ogg
Modernizr.audio.wav

Méthodes:
Les méthodes disponibles pour les médias que ce soit audio ou video sont:

  • play() => commence ou continue la vidéo référencée.
  • pause() => pause la vidéo.
  • load() => récupérer une nouvelle ressource multimédia.
  • canPlayType() => détermine si le navigateur supporte un codec particulier.
Ces méthodes peuvent être utilisées, comme ceci:
var video = document.getElementById('video');
video.play();
video.pause();
video.canPlayType('audio/ogg');

événements:
  • play: Lorsque la vidéo est lancée.
  • pause: Lorsque la vidéo est en pause.
  • ended: Lorsque la vidéo est terminée.
  • progress: Lorsque les médias ont été récupérées.
  • canplay: Lorsque la vidéo a été entièrement chargées.

attributs:
  • duration: La durée de la vidéo associée.
  • currentTime: La position actuelle de la vidéo. Par exemple, lorsque la vidéo est en pause.
  • autoplay: Une valeur booléenne indiquant si la vidéo a été fixé à autostart.
  • poster: L'image d'affiche fourni.
  • paused: Une valeur booléenne indiquant si la vidéo est actuellement pause.
  • ended: Une valeur booléenne indiquant si la vidéo est terminée.

Prenons un exemple pratique:
Code HTML5:
<video id="video" width="500" height="500">
  <source src="video.mp4">
  <source src="video.webm">
  <source src="video.ogg">
</video>
<button id="button">Play</button>
Code JavaScript:
var video = document.getElementById("video"),
var button = document.getElementById("button");

// Lancer la vidéo lorsque le bouton est cliqué.
button.addEventListener('click', function() {
  video[video.paused ? 'play' : 'pause'](); 
}, false);

// Changer le text en Pause si la vidéo est lancée
video.addEventListener('play', function() {
  button.innerHTML = 'Pause';
}, false);

// Changer le text en Play si la vidéo en pause
video.addEventListener('pause', function() {
  button.innerHTML = 'Play';
}, false);

// Changer le text en Play si la vidéo est terminée
video.addEventListener('ended', function() {
  button.innerHTML = 'Play';
}, false);
Code JQuery:
var $video = $('#video'),
video = $video[0];

$video
.on('play', function() {
  $('#button').text('Pause');
})
.on('pause ended', function() {
  $('#button').text('Play');
});
$('#button').on('click', function() { 
  video[video.paused ? 'play' : 'pause']();
});

Newsletter

Abonnez-vous à notre newsletter pour recevoir les nouveautés.

0 commentaires:

© 2014 Déveur. WP Theme-junkie converted by Bloggertheme9
Powered by Blogger.
back to top