11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je suis en train de développer un site un peu spécial sur des "sourciers". C'est toute une ambiance particulière !
J'ai trouver un sample de bruit de source que je compte mettre un son de fond sur le site. C'est un son très calme et peu fort mais je suis conscient que cela peut géner certains visiteurs ! J'aimerai créer un bouton qui permet d'activer ou désactiver ce son. Je pensais le faire en javascript mais je sais pas comment faire.

Si vous pouviez m'aider ou discuter de la pertinence de cette solution...

Merci
Bonjour Mucsy,
As tu essayé dewplayer ?
Ou alors :
<object id="ie" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B">
<param name="src" value="../sons/fee.mid" />
<param name="autoplay" value="false" />
<param name="controller" value="true" />
<!--[if !IE]> <-->
<object id="nonie" data="../sons/fee.mid">
<param name="autoplay" value="false" />
<param name="controller" value="true" />
</object> <!--> <![endif]--></object>
A adapter a ton besoin.
Notamment : les "id", "width", "height"...
Modifié par papillon41 (02 Dec 2005 - 12:50)
merci pour ta réponse...
Mais dans la balise <object>, le parametre controller ne serait pas un genre de petite barre de lecture avec marche, arret, pause ?
Moi je parle seulement d'un fond sonore (pas une musique) qui est lancé au démarrage (genre <body onLoad="">) mais que l'on peut désactiver. C'est le seul controle dont j'ai besoin...
et entre les balises <bgsound> qui n'est pas valide, <embed> idem, <object> dont les paramètres changent en fonction de l'explorer, j'avoue ne pas trop m'en sortir !
J'ai trouvé ce code.

<HTML>
<HEAD>
<script language="javascript">
<!--
function lecture(mamusique){
document.getElementById(mamusique).play();
}
function arret(mamusique){
document.getElementById(mamusique).stop();
}
//-->
</script>
</HEAD>
<BODY>
<object id="fondsonore" name="fondsonore" data="source.wav" width="0" height="0">
	<param name="autostart" value="true" />
	<param name="file" value="source.wav" />
	<param name="src" value="source.wav" />
	<param name="loop" value="true" />
</object>
<a href="javascript:arret('fondsonore')">arreter la musique</a>
<a href="javascript:lecture('fondsonore')">reprendre la musique</a>
</BODY>
</HTML>


il peut-être lu sous IE avec le parametre classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95".
Mais sous firefox (sans ce parametre) le son est lu mais je ne peux pas l'arrêter !
Modifié par Mucsy (02 Dec 2005 - 16:12)
Firefox semble ne pas aimer ça :
document.getElementById(mamusique).play();

ni ça :
document.fondsonore.play();

ni ça :
document['fondsonore'].play();


alors que "return document['fondsonore'].name" me retourne bien fondsonore !

Je ne comprend pas....
Modifié par Mucsy (02 Dec 2005 - 16:12)
Avec la balise "object" telle que je l'est décrite, tu lance le plug-in Quick Time dans IE comme dans FF. Avec toutes les commandes.
n'oublies pas de renseigner : "id", "width", "height".
C'est :"<param name="autostart" value="true" />" qui permet de lancer le son au chargement. (true ou false).
Sans oublier l'attribut type="audio/wav" ... ça permet à IE de faire fonctionner le truc sans CLSID normalement
Merci pour vos réponses...

Le problème n'est pas la lecture sous Firefox : comme je l'ai dit, le fichier wav est lu correctement. Le problème vient de la fonction Javascript stop() (et play() aussi en fait)... Je ne peux pas l'arrêter. Pourtant, j'ai activé les applications Javascript dans le navigateur...
et puis sous IE ça a pas l'air de marcher sans clsid, même en mettant type="audio/wav"...
Modifié par Mucsy (04 Dec 2005 - 15:43)
remplace document.xxx.stop(); par document.getElementById('xxx').stop();

Seul IE autorise l'adressage direct d'id depuis l'objet document.
Le problème c'est que j'ai déjà essayé cette solution... (voir posts précédents)
Est-ce qu'il y aurait d'autres fonctions que play() et stop() que je pourrais tester avec cet objet ? ça me permettrai de mieux cerner ce qui marche pas !
Est-ce que quelqu'un à utilisé ce code ou un code du même style et l'a fait tourner sur Firefox ?
Modifié par Mucsy (05 Dec 2005 - 16:31)
Essaie de faire :


var obj = document.getElementById('xxx');
for (var i in obj) { alert(i + ' = ' + obj[i]); }


Avec ça ça te liste toutes le propriétés et méthodes de l'objet. Normalement, tu devrais avoir un moment donné un truc comme :
function play () { native code }[/i]
MEEEERCIiIiIiIiIiIiIiIiIiI !

Grâce à ta petite astuce, j'ai pu voir que les fonctions Stop() and Play() prennent des majuscules !!! C'est con et rageant quand ça fait une semaine qu'on travaille dessus mais Firefox ne les accepte qu'avec des majuscules !!!

Par contre pour l'histoire du type="audio/wav" qui remplace le clsid sous IE, je suis pas convaincu...

Mais merci bcp !
Modifié par Mucsy (05 Dec 2005 - 18:44)
Pendant que j'y suis, comment on fait pour désinstaller cette merde de quicktime ? j'ai pas trouvé ! Et puis depuis, plus de son sur les pages...
et effectivement avec audio/wav ça lance quicktime (et ça fait planter IE par la même occasion) tandis que le clsid lance WMP, ce qui fonctionne... donc type="audio/wav", ç lance le plugin par défaut.

<eidt> non, c'est bon, trouvé ! </edit>
Modifié par QuentinC (05 Dec 2005 - 20:34)
Salut désolé mais j'ai pas tout suivis, pourrais tu mette le code en claire stp?

merci bien