J'essaie 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 cela aussi.
javascript
jquery
html
Suresh Pattu
la source
la source
Réponses:
Quelle approche?
Avec vous pouvez lire des fichiers audio
<audio>
tag ou<object>
ou<embed>
. Chargement paresseux (chargez 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, une fois chargé, vous pouvez le démarrer.play()
et le mettre en pause avec.pause()
.Les choses que nous avons utilisées
Nous utiliserons l'
canplay
événement pour détecter que notre fichier est prêt à être lu.Il n'y a pas de
.stop()
fonction pour les éléments audio. Nous ne pouvons que les interrompre. Et lorsque nous voulons commencer au début du fichier audio, nous le modifions.currentTime
. Nous utiliserons cette ligne dans notre exempleaudioElement.currentTime = 0;
. Pour atteindre la.stop()
fonction, nous mettons d'abord le fichier en pause, puis réinitialisons son heure.Nous souhaitons peut-être connaître la longueur du fichier audio et la durée de lecture actuelle. Nous avons déjà appris
.currentTime
ci-dessus, pour apprendre sa longueur que nous utilisons.duration
.Guide d'exemple
timeupdate
événement pour mettre à jour l'heure actuelle chaque fois que l'audio.currentTime
change.canplay
événement pour mettre à jour les informations lorsque le fichier est prêt à être lu.la source
ended
événement qui lit l'audio depuis le début.Cela ne fonctionne pas
$("#myAudioElement").play()
comme prévu. La raison officielle est que l'incorporer dans jQuery ajouterait uneplay()
méthode à chaque élément, ce qui entraînerait une surcharge inutile. Donc, à la place, vous devez vous y référer par sa position dans le tableau d'éléments DOM que vous récupérez avec$("#myAudioElement")
, aka 0.Cette citation provient d'un bogue qui a été soumis à ce sujet , qui a été fermé en tant que "feature / wontfix":
la source
Pour tous les autres, j'ai simplement pris la réponse d'Ahmet et mis à jour le jsfiddle du demandeur d' origine ici , en le remplaçant:
pour
lien dans un mp3 disponible gratuitement sur le Web. Merci d'avoir partagé la solution facile!
la source
J'ai ici une solution agréable et polyvalente avec une solution de secours:
Après cela, vous pouvez initialiser autant d'audio que vous le souhaitez:
Vous pouvez désormais atteindre l'élément audio initialisé où vous le souhaitez avec des appels d'événements simples comme
la source
Démonstration JSFiddle
Voici ce que j'utilise avec JQuery:
la source
Qu'en est-il de:
la source