HTML5 Audio - Son ne joue qu'une fois
Je suis en utilisant google Chrome et c'est mon code:
<audio id="letter_audio" src="audio/bomb.mp3" type="audio/mp3" preload="auto"></audio>
$('.sound').live('click', function () {
var sound = $("#letter_audio")[0];
sound.pause();
sound.currentTime = 0;
sound.play();
return false;
});
Comment se fait le son joue la première fois que je clique sur jouer. puis quand je clique de nouveau, elle fait une pause, comme le code va. mais la il justs reste sur pause? je veux jouer, puis quand je clique sur nouveau, revenir à 0 et de jouer à nouveau comme dans le code?
salut, avez-vous trouvé une solution?
la solution qui fonctionne
Tom solution pour ajouter un son.load() a fonctionné pour moi
la solution qui fonctionne
Tom solution pour ajouter un son.load() a fonctionné pour moi
OriginalL'auteur Harry | 2012-02-17
Vous devez vous connecter pour publier un commentaire.
J'ai eu des problèmes similaires, la relecture de l'audio, mais a réussi à le résoudre par l'appel de la
load()
méthode avant leplay()
appel. Essayez ceci:Je pense que c'est mieux que la réinitialisation de la
src
attribut pour deux raisons:src
valeur dans le contenu de la page, plutôt que dans le JavaScriptFonctionne lorsque vous incorporez plusieurs
<source>
des éléments de différents formats audio:C'est une bonne solution, mais je souhaite que j'ai compris la cause du problème.
.load()
semble exagéré basé sur SOCIÉTÉ et WHATWG les descriptions. Si je sortiesound.error
après avoir essayé deplay()
le message "impossible d'envoyer de l'audio paquet pour le décodage". Cela ressemble à un bug pour moi, mais tout ce que j'ai pu trouver est quelque chose de très faiblement liés..load()
n'est pas nécessaire pour les fichiers OGG.OriginalL'auteur Tom
essayer ce.. en gros, la réinitialisation de la
src
attribut doit réinitialisation de l'audio comme souhaité.Ce n'est pas cher - c'est pas cher.. seul le premier sur les incite à une activité de réseau.. les clics suivants accéder au mp3 directement dans le disque local cache - il n'y a pas de coût à tous.. voyez par vous-même en Chrome Dev Tools, onglet Réseau
oui, mais il a raison. chaque fois que vous modifier de la src, il devra envoyer une demande.
Toutefois, cela ne fonctionne pas très bien si vous avez un fichier que vous tentez de jouer à des intervalles sur les appareils mobiles que jouent toutes les actions doivent être dirigées à partir d'une interaction de l'utilisateur. Si vous avez votre son comme un ensemble de variable puis sur la première initiation, le fichier est "chargé" et vous êtes en mesure d'utiliser jouer encore et encore sans avoir à l'utilisateur de cliquer sur les boutons.
Également, cela ne fonctionne pas lorsque vous utilisez plusieurs formats audio tels que
ogg
,wav
,mp3
à l'intérieur de lasource
tag..OriginalL'auteur Lloyd
il semble que, pour le moment, l'heureactuelle attribut est en lecture seule (et, en 2011, il a obtenu un wont-fix état)
cependant, après la mise
src
sur votre audio-objet (nouveau) - comme proposé par @Lloyd - la currentTime attribut est réglable (au moins sur le courant de chrome version pour linux (24.0.1312.69)).cela signifie par adjonction de l'étrange ligne
votre exemple n'est ce qu'il est censé.
complète:
qu'il suffit de définir la
src
une fois, vous voudrez peut-être appeler quelque part pendant le processus d'installation.OriginalL'auteur kr1
vous pouvez utiliser php pour ajouter une requête à la fin de l'url avec le temps();
<source src="URLtoTrack.mp3?<?php echo time(); ?>" />
fonctionne pour moi.
OriginalL'auteur A1exB1