2

我有一个需要播放背景音乐的游戏,当我单击一个按钮时它应该播放声音。它播放声音但停止音乐。

重新打开音乐的唯一方法是进行另一个事件,例如单击按钮。有没有办法在背景音乐继续播放的同时播放声音?

到目前为止,这是我的代码。

var a = new Audio("Latin Groove Hype App.mp3");

function init()
{  
    playBackGroundLoop();

}// in html(<body onload = "init()">)


function playSoundEffect()
{
    var playSoundCorrect = new Audio("Correct synth.mp3");
    playSoundCorrect.play();
}


function playBackGroundLoop()
{
    a.addEventListener('ended', function() 
                   {
                       this.currentTime = 0;
                       this.play();//plays music on loop
                   }, true);
    a.play();
}

$(function()
  {
  $("#playButton").on("click",function()
                {
                 playSoundEffect();
                }
  });

谢谢

4

1 回答 1

0

花点时间传递我的脚本以适应您的项目:

HTML:

<ul id=nav>
    <li><a href="javascript:;">Item 1</a></li>
    <li><a href="javascript:;">Item 2</a></li>
</ul>

<audio id="audio-nav">
    <source src="click.mp3"></source>
    <source src="click.ogg"></source>
    Your browser isn't invited for super fun audio time.
</audio>
<audio id="audio-bg">
    <source src="bg.mp3"></source>
    <source src="bg.ogg"></source>
    Your browser isn't invited for super fun audio time.
</audio>

<a id="toggle" href="javascript:;">PLAY/PAUSE</a>

JS:

var bgMusic = $('#audio-bg')[0],
    navMusic = $('#audio-nav')[0],
    playing = true;

bgMusic.addEventListener('ended', function() {
    this.currentTime = 0;
    if (playing) {
        this.play();
    }
}, false);

bgMusic.play();

$('#toggle').click(function() {
    if (!bgMusic.paused) {
        bgMusic.pause();
        playing = false;
    } else {
        bgMusic.play();
        playing = true;
    }
});

$('#nav a').click(function() {
    navMusic.play();
});​

...在这里,一个功能齐全的演示

于 2012-08-13T16:32:55.417 回答