Reputation: 46308
How do I get the following script to play multiple sounds? I can get it to play only one.
<script>
// Mouseover/ Click sound effect- by JavaScript Kit (www.javascriptkit.com)
// Visit JavaScript Kit at http://www.javascriptkit.com/ for full source code
var html5_audiotypes={ //define list of audio file extensions
"mp3": "audio/mpeg",
"ogg": "audio/ogg",
}
function createsoundbite(sound){
var html5audio=document.createElement('audio')
if (html5audio.canPlayType){ //check support for HTML5 audio
for (var i=0; i<arguments.length; i++){
var sourceel=document.createElement('source')
sourceel.setAttribute('src', arguments[i])
if (arguments[i].match(/\.(\w+)$/i))
sourceel.setAttribute('type', html5_audiotypes[RegExp.$1])
html5audio.appendChild(sourceel)
}
html5audio.load()
html5audio.playclip=function(){
html5audio.pause()
html5audio.currentTime=0
html5audio.play()
}
return html5audio
}
else{
return {playclip:function(){throw new Error("Your browser doesn't support HTML5 audio unfortunately")}}
}
}
//Initialize sound clips with 1 fallback file each:
var mouseoversound=createsoundbite("/messages4u/2011/images/october/laugh.ogg", "/messages4u/2011/images/october/laugh.mp3")
</script>
HTML:
<area onmouseover="mouseoversound.playclip()" />
Upvotes: 0
Views: 361
Reputation: 324640
Well you only have one <audio>
element, how do you expect it to play more than one sound?
If you want two sound effects, you need two <audio>
elements (you can change the source of just one element, but it's messy and probably won't work how you want it to).
Upvotes: 2