Comment insérer un son sur son site ?

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...

Comment mettre un fond sonore continu pour tout le site, qui ne s'arrête pas quand on change de page ?

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.