多个来源

时间:2011-10-30 03:12:28

标签: javascript html5 audio

如何让以下脚本播放多个声音?我只能玩一个。

    <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()" />

1 个答案:

答案 0 :(得分:2)

嗯,你只有一个<audio>元素,你怎么期望它能播放多个声音?

如果你想要两个声音效果,你需要两个<audio>个元素(你可以改变一个元素的来源,但它很乱,可能无法按你想要的方式工作到)。