Il y a peu d'éditeurs de pages
web qui permettent d'insérer directement un fond sonore. Il
faut donc passer en mode d'édition HTML et taper des
commandes.
Une fois encore, nous allons nous heurter aux caprices des deux
navigateurs principaux que sont Internet Explorer et Netscape. Chacun
possède sa propre commande : BGSOUND pour Explorer et
EMBED pour Netscape (mais Explorer comprend aussi EMBED
à partir de la version 4).
Syntaxe pour BGSOUND :
Pour Internet Explorer seulement :
<BGSOUND SRC="monfichier.mid" LOOP="xxx">
où monfichier.mid contient le fond sonore, ici au format midi, et xxx désigne le nombre de fois où le fichier doit être rejoué. Pour une boucle infinie, taper LOOP="infinite" ou LOOP="-1".
Syntaxe pour EMBED :
Pour Netscape ou Explorer 4+ :
<EMBED SRC="monfichier.mid" LOOP="xxx" AUTOSTART="true">
mais cette fois, la boucle infinie se code par LOOP="true". L'attribut AUTOSTART="true" est nécessaire pour que le son démarre immédiatement, quel que soit le «plug-in» utilisé pour lire le fichier sonore. Selon ce plug-in, il se peut aussi qu'une console plus ou moins discrète apparaisse, qui permettra d'arrêter ou de remettre en marche la musique, mais qui bouscule votre mise en page. Pour l'empêcher d'apparaître, il faudra ajouter l'attribut HIDDEN="true" à l'intérieur du <EMBED>.
Et si on veut que ça marche à la fois sur NN et sur IE ?
Comme la version 3 d'Explorer n'a pas totalement disparu et qu'elle ne digère pas EMBED, il faut bien combiner les deux commandes. Il semble qu'il n'y ait pas de solution complètement satisfaisante en HTML. On peut tout bêtement ajouter les deux instructions :
<BGSOUND SRC="monfichier.mid"
LOOP="xxx">
<EMBED SRC="monfichier.mid" LOOP="xxx"
AUTOSTART="true">
mais les versions 4 et suivantes
d'Explorer comprennent les deux lignes et risquent de
déclencher deux fois la musique, selon le plug-in
utilisé. Avec un peu de chance, les deux musiques seront
à l'unisson, mais il se peut aussi qu'on entende un
décalage insupportable... Pour éviter cela, il faut
recourir au javascript pour détecter le navigateur
utilisé et ne déclencher un BGSOUND que si on a
détecté un IE3 - ce qui paraît bien
compliqué pour un navigateur qui a presque complètement
disparu en début 2001...
Il faut utiliser des
cadres ou frame.
La solution la plus simple consiste à utiliser des cadres, un
cadre de largeur 100% pour le site proprement dit, et un cadre de 0%
où on mettra la page qui chargera la musique; ça peut
se coder comme suit :
<FRAMESET ROWS="100%,*">
<FRAME NAME="site" SRC="accueil.html" ....>
<FRAME NAME="music" SRC="son.html">
</FRAMESET>
Comme ça, le cadre "music" où on aura chargé la musique restera en place... jusqu'au premier lien avec TARGET="_top", qui peut ne jamais venir dans le site. Ce cadre sera invisible et la musique ne s'arrêtera pas.
Le problème est que certains visiteurs n'apprécient pas du tout la musique en boucle et qu'ils tiennent beaucoup à ce qu'ils puissent l'arrêter. Ça peut s'arranger facilement : il suffit de prévoir un lien qui chargera une page vide dans le cadre invisible :
<A HREF="stop.html" TARGET="music">Arrêter la musique</A>
Toutefois, tout le site s'installe dans une structure de cadre, ce qui n'a pas que des avantages.