Lire un fichier audio à l'aide de jQuery quand on clique sur un bouton
Je suis en train de lire un fichier audio lorsque je clique sur le bouton, mais cela ne fonctionne pas, mon code html est:
<html>
<body>
<div id="container">
<button id="play">
Play Music
</button>
</div>
</body>
</html>
mon JavaScript est :
$('document').ready(function () {
$('#play').click(function () {
var audio = {};
audio["walk"] = new Audio();
audio["walk"].src = "http://www.rangde.org/static/bell-ring-01.mp3"
audio["walk"].addEventListener('load', function () {
audio["walk"].play();
});
});
});
J'ai créé un Violon pour que trop.
- Étiez-vous à l'aide de audio de HTML5
- Essayez d'ajouter
audio["walk"].load();
avant laaudio["walk"].play();
. Aussi, il ne peut pas travailler en raison de votre objet audio doit êtrevar audio = [];
, pasvar audio = {};
.
Vous devez vous connecter pour publier un commentaire.
Qui approche?
Vous pouvez lire des fichiers audio avec
<audio>
tag ou<object>
ou<embed>
.Lazy loading(chargement quand vous en avez besoin) le son est la meilleure approche si sa taille est petite. Vous pouvez créer l'élément audio dynamiquement, lors de son chargement, vous pouvez le lancer avec
.play()
et de la mettre en pause avec.pause()
.Choses, nous avons utilisé
Nous allons utiliser
canplay
événement à détecter notre dossier est prêt à être joué.Il n'y a pas de
.stop()
fonction par des éléments audio. Nous ne pouvons que mettre en veille. Et quand nous voulons commencer à partir du début du fichier audio nous changer sa.currentTime
. Nous allons utiliser cette ligne dans notre exempleaudioElement.currentTime = 0;
. Pour atteindre.stop()
fonction, nous avons d'abord mettre en pause le fichier puis de réinitialiser son temps.On peut vouloir connaître la longueur du fichier audio et de la durée de lecture actuelle. Nous avons déjà appris
.currentTime
ci-dessus, à savoir sa longueur, nous utilisons.duration
.Exemple Guide
timeupdate
événement de mise à jour en cours du temps lors de l'audio.currentTime
changements.canplay
événement de mise à jour de l'information lorsque le fichier est prêt à être joué.JS:
HTML:
La réponse réelle, dans jQuery, est
Il ne fonctionne pas avec
$("#myAudioElement").play()
comme vous le souhaitez. La raison officielle est que de l'intégrer jQuery à ajouter unplay()
méthode pour chaque élément, ce qui entraînerait une surcharge inutile. Donc, au lieu de cela vous devez vous référer à elle de par sa position dans le tableau des éléments du DOM que vous récupérez avec$("#myAudioElement")
, aka 0.Cette citation est celle d'un bug qui a été soumise à ce sujet, qui a été fermé comme "fonction/wontfix":
Pour quelqu'un d'autre, j'ai simplement pris Ahmet réponse et mis à jour la première personne du jsfiddle ici, la substitution:
pour
le lien disponible gratuitement, mp3 sur le web. Merci pour le partage de la solution de facilité!
Je ici ont une belle et solution polyvalente avec un repli:
Après cela, vous pouvez initialiser autant audio que vous le souhaitez:
Maintenant, vous pouvez atteindre la initialisée élément audio comme bon vous semble avec de simples cas des appels comme
Si cela vous aider en 2019 ,
ensuite, vous devez savoir - je construire un jquery /Zepto plugin.
Vous pouvez le télécharger ici:
https://github.com/xpectmore/simple-jquery-audio-play-button
Qui est SOUS UNE-GRATUIT-pour-les hommes de licence quelque chose de très simple.
J'ai fait ce plugin car LE GARS DE LA CUISINE a été décider de bloquer la lecture automatique à partir de MOZILLA Firefox version 66(j'ai utilisé dans mon framework php,dans "Hello World" démo certains "Bienvenue" texte pour parler de l'audio pour certaines langues, juste pour la démo but) considérez donc ce n'est pas une réponse pour ce forum, mais un retour à MOZILLA.