2010-05-04 3 views
22

J'essaye d'obtenir que jQuery joue un son sur l'élément hover/clic. (C'est comme un site Web flash sans flash)Cross-plate-forme, multi-navigateur pour lire le son en utilisant jQuery 1.4?

J'ai essayé les méthodes recommandées dans Cross-platform, cross-browser way to play sound from Javascript?, le plugin jQuery Sound et quelques autres tutoriels sans succès. Je suppose que c'est parce qu'ils n'ont pas été mis à jour depuis 2008.

Est-ce que quelqu'un a des recommandations?

+2

Vous pouvez trouver le plug-in audio jQuery à l'adresse http://dev.jquery.com/browser/trunk/plugins/sound/jquery.sound.js – Erin

+1

Pourriez-vous utiliser ce plug-in audio jQuery (http: // www. happyworm.com/jquery/jplayer/)? – Mottie

+0

Je l'ai regardé, mais j'ai pensé que c'était un peu trop lourd pour ce que je voulais. Je vais y jeter un second coup d'œil. Merci! – Erin

Répondre

33

N'en a pas besoin. La balise HTML, combinée avec JavaScript, fera l'affaire.

<audio id="soundHandle" style="display: none;"></audio> 
<script> 
    soundHandle = document.getElementById('soundHandle'); 
    soundHandle.src = '/blah/blah.mp3'; 
    soundHandle.play(); 
</script> 
+0

C'est un peu court de code. Je suis plus à l'aise avec jQuery, mais comment utiliser java pour attacher ceci à une souris sur un événement? – Erin

+11

@Erin: Javascript! = Java, et c'est du Javascript pur. Notez, cependant, que ce n'est pas du tout un navigateur car il utilise l'élément HTML5 '

+4

Pourquoi est-ce downvoted? Ceci ** devrait être le chemin à parcourir. Oui, ce n'est pas encore cross-browser, mais ce sera bientôt et ** c'est la norme **. En fait, le seul navigateur ** qui ne le supporte pas actuellement est Internet Explorer. Source: http://caniuse.com/#feat=audio – Felix

6

En fait, il est impossible de le faire d'une manière compatible véritablement multi-navigateur comme par exemple les iPhones vont jouer son seulement sur une "page" de joueur dédiée. Cependant, certains des plugins dans les autres réponses devraient faire le travail pour la plupart des navigateurs (de bureau).

+1

Pourquoi le downvote? –

5

tag audio ne fonctionne pas pour moi dans certains navigateurs, donc c'est comment je l'ai eu fait:

function playBuzzer(){ 
     $("body").append("<embed src='/web/sounds/Buzz.mp3' autostart='true' loop='false' width='2' height='0'></embed>"); 
} 

Chaque fois que je veux jouer son (onmouseover, onclick, onload ...) J'appelle cette fonction .

+0

Excellent. Cela fonctionne même dans IE en mode de compatibilité. – iliask

Questions connexes