bonjour,
voilà j'ai un petit souci, je bosse actuellement sur un site pour lequel je veux mettre un fond sonore mais sans obliger les utilisateurs à installer des plugins supplémentaires.
Je me suis donc tourné vers HTML5 et sa balise audio. Premier problème: IE, pour lequel je dois utiliser bgsound.
Etant donné que je ne peux pas tester le navigateur du client au niveau du php pour des raisons techniques, je dois donc le faire au niveau du javascript. J'ai donc raisonné de la façon suivante: au chargement de la page, je teste le nav, si c'est IE, je crée une balise bgsound, si c'est un autre nav, je crée une balise audio (sous forme d'objet HTML), puis j'ajoute cet objet grace à appendChild().
Ce qui donne le code suivant (avec une url vers un fichier wav bidon trouvé sur internet):
<script type="text/javascript"> /** * fonction à appeller au chargement */ function chargement(){ if (navigator.appName == "Microsoft Internet Explorer"){ var musique = document.createElement('bgsound'); musique.loop = '-1'; musique.hidden = 'true'; }else{ var musique = document.createElement('audio'); musique.playcount = '999'; musique.autoplay = 'true'; musique.controls = 'false'; } musique.src = "http://www.memoclic.com/medias/sons-wav/2/698.wav"; document.getElementById("m").appendChild(musique); } </script> <div id="misa" onLoad="chargement()"> <div id="m"/> </div>
seul problème, la musique ne se lance pas...
Lesquelles ,
musique.loop = '-1';
Je ne le sens pas bien.
As tu essayé avec musique.loop = 'infinite' ?
la raison pour laquelle j'ai pas accès au php est parce qu'on m'a demandé des pages htm qui n'aient pas besoin d'être générés par des scripts (php, asp) coté serveur. En gros, ces pages htm seront utilisés localement par les utilisateurs comme si c'était de simples applis.
Je viens de tester avec loop="infinite" sous IE et ça ne change rien. Ce qui est étrange c'est que si je mets directement
<bgsound src="http://www.memoclic.com/medias/sons-wav/2/698.wav" loop="-1" hidden="true"/>
ça marche sans problème sous IE et si je mets<audio src="http://www.memoclic.com/medias/sons-wav/2/698.wav" playcount="999" controls="false" autoplay="true"/>
ça marche sur les navigateurs qui reconnaissent HTML5 mais en mettant les deux ça ne marche pas. C'est pour ça que je voulais n'écrire que la balise qu'il faut en fonction du navigateur.D'où l'ajout dynamique de la balise grâce au javascript
je viens de re-tester en mettant tout simplement les deux balises dans ma page et d'un coup ça marche oO
Alors que hier ce même code ne donnait rien...
Mais en tout cas, il serait intéressant de découvrir pourquoi la musique ne se lance pas quand la balise (ou ) est ajouté dynamiquement
Une facétite du cache ?
Peut être qu'IE ne sait pas traiter l'apparition dynamique de la balise. Ce serait donc un bug....
Ah, peut être bien
J'ai eu le même problème sous mozilla. En principe, IE sait gérer l'ajout dynamique de balises et l'innerHTML, mais peut être que les balises "media" ( , ) ne peuvent pas être ajoutées de cette manière...
Enfin bref, en tout cas merci de ton aide
Cordialement, Gilles M.