Bonjour à tous,
je finalise un jeux en canvas après de longs mois de développement, je reviens sur la partie audio après l'avoir laissée tomber pendant longtemps suite à de nombreux problèmes et des comportements différents suivant les navigateurs. En gros l'audio dans un jeux html5 c'est l'horreur.
Il s'agit d'un shoot them up, quand je tire des balles, un son se joue, je souhaite avoir une continuité dans le son. donc une boucle (loop). pour simuler un "piou piou piou" infini
j'ai un peu tout essayé, le son est chargé en ogg ou mp3 suivant la possibilité du navigateur avec "canPlayType". pas de problème de ce coté là.
une fois le son fini je veux qu'il se rejoue.
un simple loop met quelques millisecondes avant de se rejouer quelque soit le navigateur donc ca ne va pas.
la je viens de tester de faire de la facon suivante:
SndPiu=new Audio(SRCsnd+ '/pioupiou' +EXTsnd);
une fois que j'ai tiré, le son se rejoue:
en gros cela permet, avant que le son soit fini, de le remettre à zéro pour éviter d'avoir un blanc.
ca marche très bien sur chrome et l'effet voulu est là. par contre sur firefox et safari, j'ai encore un blanc entre deux lectures alors qu'ils comprennent bien le addEventListener('timeupdate') ainsi que le currentTime.
Je n'ai plus d'idées.. si quelqu'un a déjà été confronté à ce problème une petite aide serait grandement appréciée!
Modifié par canvasdev (02 Feb 2013 - 12:45)
je finalise un jeux en canvas après de longs mois de développement, je reviens sur la partie audio après l'avoir laissée tomber pendant longtemps suite à de nombreux problèmes et des comportements différents suivant les navigateurs. En gros l'audio dans un jeux html5 c'est l'horreur.
Il s'agit d'un shoot them up, quand je tire des balles, un son se joue, je souhaite avoir une continuité dans le son. donc une boucle (loop). pour simuler un "piou piou piou" infini
j'ai un peu tout essayé, le son est chargé en ogg ou mp3 suivant la possibilité du navigateur avec "canPlayType". pas de problème de ce coté là.
une fois le son fini je veux qu'il se rejoue.
un simple loop met quelques millisecondes avant de se rejouer quelque soit le navigateur donc ca ne va pas.
la je viens de tester de faire de la facon suivante:
SndPiu=new Audio(SRCsnd+ '/pioupiou' +EXTsnd);
une fois que j'ai tiré, le son se rejoue:
// le son dure 1.5
SndPiu.addEventListener('timeupdate', function (){
if (this.currentTime >= 1.3) {
this.currentTime=0;
}
}, false);
len gros cela permet, avant que le son soit fini, de le remettre à zéro pour éviter d'avoir un blanc.
ca marche très bien sur chrome et l'effet voulu est là. par contre sur firefox et safari, j'ai encore un blanc entre deux lectures alors qu'ils comprennent bien le addEventListener('timeupdate') ainsi que le currentTime.
Je n'ai plus d'idées.. si quelqu'un a déjà été confronté à ce problème une petite aide serait grandement appréciée!
Modifié par canvasdev (02 Feb 2013 - 12:45)