2010-05-04 7 views
22

Sto cercando di ottenere jQuery per riprodurre un suono sull'elemento hover/clic. (È come un sito Web flash senza flash)Modo cross-platform e cross-browser per riprodurre l'audio usando jQuery 1.4?

Ho provato i metodi consigliati in Cross-platform, cross-browser way to play sound from Javascript?, il plugin jQuery Sound e un paio di altri tutorial senza alcun successo. Presumo che ciò sia dovuto al fatto che non sono stati aggiornati dal 2008.

Qualcuno ha qualche consiglio?

+2

È possibile trovare il plug-in jQuery audio all'indirizzo http://dev.jquery.com/browser/trunk/plugins/sound/jquery.sound.js – Erin

+1

Si può utilizzare questo plug-in audio jQuery (http: // www. happyworm.com/jquery/jplayer/)? – Mottie

+0

Ho dato un'occhiata, ma ho pensato che fosse un po 'troppo pesante per quello che volevo. Gli darò una seconda occhiata. Grazie! – Erin

risposta

33

Non serve nessuno di quelli. Il tag HTML, combinato con JavaScript, farà il trucco.

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

Questo è un breve pezzetto di codice. Mi sento più a mio agio con jQuery, ma come dovrei usare java per collegarlo a un mouse sull'evento? – Erin

+11

@Erin: Javascript! = Java, e questo è puro Javascript. Si noti, tuttavia, che questo non è affatto cross-browser in quanto utilizza l'elemento '

+4

Perché è down down? Questo ** dovrebbe ** essere la strada da percorrere. Sì, non è cross-browser (ancora), ma sarà presto e ** è lo standard **. In realtà, l'unico browser ** non ** che lo supporta attualmente è Internet Explorer. Fonte: http://caniuse.com/#feat=audio – Felix

6

In realtà è impossibile da fare in un modo compatibile realmente cross-browser, come ad esempio iPhone giocheranno suono solo su una "pagina" giocatore dedicata. Tuttavia alcuni dei plug-in nelle altre risposte dovrebbero fare il lavoro per la maggior parte dei browser (desktop).

+1

Perché il downvote? –

5

tag audio non ha funzionato per me in alcuni browser quindi questo è come mi sono fatto è:

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

ogni volta che voglio per riprodurre l'audio (onmouseover, onclick, onload ...) Io chiamo questa funzione .

+0

Eccellente. Funziona anche in IE in modalità compatibilità. – iliask