Pourquoi je ne peux pas jouer des sons plus d'une fois à l'aide de HTML5 audio tag?
C'est la façon dont le son est "stockée":
<audio id = "hammer" src="res/sounds/Building/hammer.wav"></audio>
Dans le jeu (que j'utilise des sons pour l'), je l'utilise pour jouer le son:
function playSound(soundid)
{
document.getElementById(soundid).currentTime = 0;
document.getElementById(soundid).play();
}
Mais le son ne joue que la première fois, et plus jamais!
J'ai essayé de réinitialiser le "currentTime" dans la console à 0, mais j'ai littéralement obtenir ceci:
>document.getElementById("hammer").currentTime = 0
0
>document.getElementById("hammer").currentTime
0.340...
Pourquoi est-ce qui se passe, comment puis-je résoudre ce problème?
- Peut-être que c'est le fichier wav? Cela fonctionne bien pour moi sur Chrome: jsfiddle.net/xWFuq. (Ne me dérange pas le fichier son; c'était le plus court, j'ai pu trouver.)
- Mais comment peut-il être? De toute façon, peut-être que c'est ma faute de l'ordinateur, je vais le faire tourner sur un serveur et de le tester sur un autre...
- Je ne sais pas; parfois, mon Chrome tout d'un coup, refuse de jouer tout
<video>
plus (pas encore testé avec<audio>
); de même, les contrôles de l'INTERFACE utilisateur type de gel. Cela est résolu quand j'ai redémarrer Chrome. - Cela se passe sur tous les navigateurs?
- Je n'ai pas testé dans tous les navigateurs autres que le Chrome. Attendez une seconde, je le ferai. EDIT: ma version de Firefox ne prend pas en charge HTML5...
- Je viens de vérifier sur un autre ordinateur, il ne fonctionne pas ainsi.
- Télécharger fresh firefox, opera et ie9. Si ça ne fonctionne toujours pas - de retour en arrière. (Aussi, en Disant que Firefox ne prend pas en charge HTML5 .. va rendre les gens vous ignorent.)
Vous devez vous connecter pour publier un commentaire.
Voir cette diapositive et au cours des trois diapositives de Evan Wallace et Justin Ardini la présentation sur html5 game dev.
Pour toutes les ressources pour faire quelques jeux impressionnants, une partie de leur parler: http://madebyevan.com/gamedevclass/
J'ai eu ce problème récemment avec un html5. Travaillé partout, sauf safari.
À l'aide de la méthode load() avant d'appeler play() de résoudre ce problème. Il aide également à faire assurez-vous que les effets sonores ne se chevauchent pas avec de lourds boitiers lors de l'événement-gestionnaires de déclencher des sons.
Pour quiconque de tomber sur ce post à l'avenir, la balise audio n'est pas vraiment un excellent moyen de faire le jeu de l'audio.
Je recommande fortement de prendre le temps d'apprendre la WebAudio API à la place.
Quelques mois avant j'ai fait face à la même question, tout en développant un Piano en HTML5. Lorsqu'une touche a été pressée, encore et encore, j'ai dû arrêter, rembobiner et faire jouer l'audio sur chaque pression de touche. J'ai utilisé le même code écrit dans cette question, qui a travaillé dans Firefox et Safari, mais pas dans google Chrome. Dans google Chrome, il n'a pas jouer à nouveau. Enfin, j'ai dû modifier le code pour le faire fonctionner. Ajout d'un écouteur pour l'événement
onseeked
, puis définissezcurrentTime = 0
et dans le gestionnaire d'événement invoquéplay
. Cela a fonctionné pour moi. De même j'ai dû attendre pour le cas d'une action avant de donner de la prochaine action dans de nombreux endroits. C'était une vieille version de Chrome. Plus tard, j'ai découvert que même certaines versions de Navigateurs prennent en charge l'Audio, de la manière dont chacun prend en charge est légèrement différente. Cette différence ne sera pas visible si on se contente de mettre une balise audio et jouer de l'audio, mais l'expérience lorsque nous essayons de contrôler l'audio à l'aide de Javascript. De toute façon son tout sur les anciennes versions de Navigateurs, son beaucoup mieux dans les toutes dernières versions. Merci de vérifier la dernière version de Chrome ( Même mon piano travaillé en Chrome 10 sans modification de code ), et concernant le format audio, je vous suggère de garder les fichiers mp3 et ogg audio au lieu de simple fichier wav.