Le langage SMIL (Synchronized Multimedia Integration Language), qui se prononce comme le mot anglais « smile », permet de créer des présentations audiovisuelles interactives en toute simplicité. Le SMIL est typiquement utilisé pour les présentations multimédias qui intègrent la diffusion continue d'audio et de vidéo avec des images, du texte ou tout autre type de média.

Les présentations SMIL sont décrites par des fichiers texte. Vous pouvez créer ou modifier une présentation SMIL au moyen d'un éditeur de texte et générer automatiquement un document SMIL au moyen de n'importe quel langage d'écriture de scripts pouvant créer des fichiers texte. Un document SMIL spécifie les éléments multimédias à présenter, de même que quand et où ils doivent être présentés.

Les éléments multimédias d'un document SMIL sont spécifiés au moyen d'adresses URL. Les éléments multimédias peuvent être des fichiers texte, des images JPEG, des films QuickTime ou des diffusions en direct. Les adresses URL qui spécifient les éléments multimédias peuvent utiliser l'un ou l'autre des protocoles courants : HTTP, FTP, RTSP, accès aux fichiers et ainsi de suite.

Votre présentation SMIL peut utiliser tous les éléments multimédias que QuickTime peut lire, notamment photos, audio, texte, films QuickTime, objets interactifs animés, diffusions en direct, panoramas VR et films d'objets VR.

Comme les documents SMIL sont des fichiers texte, le SMIL vous fournit aussi une façon de générer automatiquement des films QuickTime au moyen d'un script – AppleScript, PERL ou CGI, par exemple – autrement dit, toute application qui peut générer un fichier texte peut servir à créer un document SMIL. Par exemple, si vous avez un script qui insère des bannières publicitaires dans vos pages Web, vous pourriez utiliser le même script pour insérer ces annonces dans un document SMIL aux côtés d'un film QuickTime diffusé en direct.

Tout comme les pistes d'un film QuickTime, les éléments multimédias d'une présentation SMIL peuvent être en séquence, en fondu enchaîné ou décalés dans le temps ou l'espace.

Structure SMIL

Le SMIL est basé sur le XML, de telle sorte que sa structure est plus rigide que celle du HTML, mais il utilise la même syntaxe familière de type <balise> et </balise>.

Le SMIL est différent du HTML du fait que toutes les balises sont sensibles à la casse (toujours en minuscules) et que toutes les balises doivent être explicitement fermées, soit dans le cas d'une paire de balises qui englobe d'autres éléments (<balise> éléments </balise>) ou dans celui d'une balise autonome qui se termine par «  /> » (<paramètres de balise />).

Le SMIL diffère aussi du HTML par le fait que le HTML mélange sans problème la structure et le contenu au sein d'un même document, alors que le SMIL ne le fait habituellement pas. Là où un document HTML contiendrait du texte à afficher, un document SMIL contiendrait plutôt l'adresse URL d'un fichier texte.

Tout comme pour le HTML, un document SMIL a un en-tête et un corps. La structure d'un fichier SMIL figure ci-dessous.

<smil>
     <head>
          <layout>
               <!-- layout tags -->
          </layout>
     </head>

     <body>
          <!-- body tags -->
     </body>
</smil>