2012-08-09 140 views
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(); 
       } 
    }); 

謝謝

回答

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(); 
});​ 

...在這裏,完全functional demo