同时播放背景音乐和音效

Posted

技术标签:

【中文标题】同时播放背景音乐和音效【英文标题】:Play background music and sound effect at the same time 【发布时间】:2012-08-09 13:00:28 【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于同时播放背景音乐和音效的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenSL ES Android 同时播放多个音效

同时播放两个声音c#

音效管理类

如何同时播放两种声音?

如何播放/停止背景音乐和音效?

iOS,swift:无延迟播放背景音乐和音效