Gestion des médias en HTML5 

Figures

ExempleImage

<figure>
  <img
  src="favicon-192x192.png"
  alt="The beautiful MDN logo.">
  <figcaption>MDN Logo</figcaption>
</figure>

ExempleCode

<figure>
  <pre>
function Hello() {
  let txt = 'Hello World'
  console.log(txt)
}</pre>
  <figcaption>Get browser details using <code>navigator</code>.</figcaption>
</figure>

ExempleCitation

<figure>
  <blockquote>If debugging is the process of removing software bugs,
  then programming must be the process of putting them in.</blockquote>
  <figcaption><cite>Edsger Dijkstra</cite></figcaption>
</figure>

Exercice

Réécrivez le code HTML suivant en mobilisant les balises figure et figurecaption.

<!DOCTYPE html>
<html lang="fr">
  <head>
    <title>Des visages...</title>
    <meta charset="utf-8">
  </head>
  <body>
    <img src="visage.png" alt="Visage de femme noire sur fond blanc">
    <p>Auto-portrait</p>
  </body>
</html>
<!DOCTYPE html>
<html lang="fr">
  <head>
    <title>Des visages...</title>
    <meta charset="utf-8">
  </head>
  <body>
    <figure>
      <img src="visage.png" alt="Visage de femme noire sur fond blanc">
      <figcaption>Auto-portrait</figcaption>
    </figure>
  </body>
</html>

Insérer du son (audio)

SyntaxeBalise <audio>

HTML5 a prévu une balise spéciale pour insérer du son : <audio>.

L'utilisation standard de la balise requiert d'indiquer le nom du fichier source via l'attribut src.

Le format mp3 est reconnu par l'ensemble des navigateurs. D'autres formats sont possibles selon les navigateurs, comme wav ou ogg notamment.

ExempleInsertion d'un fichier audio

<audio src="maChanson.mp3"></audio>

À ce stade, la source audio est bien intégrée mais le lecteur n'apparaît pas. Il faut pour cela ajouter l'attribut "controls" dans la balise <audio>.

<audio src="maChanson.mp3" controls>Veuillez mettre à jour votre navigateur !</audio>

Les anciens navigateurs qui ne comprennent pas la balise afficheront le texte qui se trouve à l'intérieur.

ExempleInsertion de plusieurs versions d'un fichier audio

Il est possible de proposer plusieurs sources dans différents formats en précisant à chaque fois le MIME type avec l'attribut "type".

<audio controls>
    <source src="maChanson.ogg" type="audio/ogg">
    <source src="maChanson.mp3" type="audio/mp3">
</audio>

Le navigateur choisira le format qu'il reconnaît.

Exercice

Intégrez le fichier audio suivant dans une page HTML.

Utilisez les attributs "src" et "controls".

<--! Ressource locale -->
<audio src="audio.mp3" controls>
Le fichier son n'est pas pris en charge par votre navigateur
</audio>

Choisissez une musique sur un site diffusant de la musique sous licence libre comme dogmazic.net et intégrez-la à votre page (sans la copier sur votre serveur).

On utilise l'URL distante de la musique.

<audio src="https://...
<--! Ressource à distance -->
<audio src="https://freemusicarchive.org/music/download/179d4fd3a596779d670cd9792990bfbde09c3479" controls>
Le fichier son n'est pas pris en charge par votre navigateur
</audio>

Insérer une vidéo (video)

SyntaxeBalise <video>

HTML5 a prévu une balise spéciale pour insérer une vidéo : <video>.

L'utilisation de cette balise est similaire à la balise <audio>, et plusieurs formats sont aussi possibles.

La source de la vidéo doit être renseignée (attribut src ou élément source).

Comme pour la balise <audio>, les commandes de lecture apparaissent en ajoutant l'attribut 'controls' à la balise <video>.

ExempleAjout d'une vidéo avec plusieurs formats

<video id="maVid" poster="img1.jpg" controls width="320" height="240">
    <source src="maVideo.mp4" type="video/mp4" />
    <source src="maVideo.webm" type="video/webm" />
    <source src="maVideo.ogv" type="video/ogg" />
    Alternative (balise non reconnue par le navigateur) : lien de téléchargement, message...
</video>

Exercice

Accéder au site http://download.blender.org/peach/bigbuckbunny_movies/ où est disponible le trailer de Big Buck Bunny. Intégrer le fichier 'big_buck_bunny_480p_stereo' à une page HTML en respectant les règles suivantes :

  • utilisation de sources multiples ;

  • on listera ces dernières dans l'ordre .mov, .avi puis .ogg ;

  • ne pas oublier de renseigner le MIME type ;

  • observer si le format est reconnu par le navigateur au fur et à mesure.

<source src="" type=""/>
<video controls>
    <source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.avi" type="video/x-msvideo"/>
    <source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov" type="video/quicktime"/>
    <source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.ogg" type="audio/ogg"/>
    Veuillez mettre à jour votre navigateur !
</video>

Initiation à Canvas

DéfinitionCanvas

La balise HTML <canvas> est utilisée pour faire des dessins graphiques à l'aide d'un script JavaScript. L'élément <canvas> est juste un conteneur pour les dessins, il faut utiliser un script pour dessiner. Canvas permet de dessiner des lignes, des carrés, des cercles, des textes...

ExempleCode minimal

<canvas id="mon_canvas" width="500" height="500" />
<script type="text/javascript">
    var c = document.getElementById("mon_canvas");
    var ctx = c.getContext('2d');
    // On effectue ici toutes les opérations de dessin
</script>
  • On commence par créer une balise d'identifiant mon_canvas définissant une zone de dessin de 500px de largeur et 500px de hauteur.

  • On utilise ensuite le DOM pour stocker l'élément mon_canvas dans la variable c.

  • On lui applique alors la fonction getContext() qui retourne le contexte de dessin (2D ou 3D), c'est-à-dire un ensemble de méthodes et attributs qui permettent de dessiner et manipuler les images dans l'élément mon_canvas. Dans le cadre de l'API Canvas il s'agira toujours de getContext('2d'), getContext('3d') étant du WebGL.

ExempleDessiner un carré rouge

<!DOCTYPE html>
<html><body>
<canvas id="mon_canvas" width="200" height="200" 
style="border:1px solid #c3c3c3;">
Le navigateur ne reconnaît pas l'élément Canvas
</canvas>
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0,0,100,100);
</script>
</body>
</html>
  • La propriété fillStyle permet de définir la couleur de remplissage.

  • La méthode fillRect(x,y,largeur, longueur) dessine un rectangle partant de (x,y).

ExempleDessiner une ligne

<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.moveTo(0,100);
ctx.lineTo(200,100);
ctx.stroke();
</script>
  • La fonction moveTo(x,y) permet de se déplacer au point de coordonnées (x, y) en partant du coin supérieur gauche, cela sans effectuer de tracé.

  • La fonction lineTo(x,y) définit un tracé jusqu'au point de coordonnées (x, y).

  • La fonction stroke() permet de dessiner le tracé défini précédemment.

Exercice

Appliquer les fonctions de l'API Canvas. Soit un canvas de taille (200,200).

Dessiner un carré en partant du milieu du canvas de taille (50,50).

Au lieu de dessiner un carré avec "ctx.rect(100,100,50,50)", dessiner un carré en utilisant les fonctions moveTo(x,y) et lineTo(x,y).

Rappel : code de base

<canvas id="mon_canvas" width="200" height="200" />
<script type="text/javascript">
var c = document.getElementById("mon_canvas");
var ctx = c.getContext('2d');
// On effectue ici toutes les opérations de dessin
</script>
<!DOCTYPE html>
<html>
<body>
<canvas id="mon_canvas" width="200" height="200"
style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(150,100);
ctx.lineTo(150,150);
ctx.lineTo(100,150);
ctx.lineTo(100,100);
ctx.closePath();
ctx.lineWidth = 5;
ctx.stroke();
</script>
</body>
</html>

Colorier le carré en rouge.

ctx.fillStyle

ctx.fill()

<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(150,100);
ctx.lineTo(150,150);
ctx.lineTo(100,150);
ctx.lineTo(100,100);
ctx.closePath();
ctx.lineWidth = 5;
ctx.fillStyle = "#FF0000";
ctx.fill();
ctx.stroke();
</script>
Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.