如何播放一次声音片段,即使代码应该多次调用它?

时间:2015-10-08 21:53:19

标签: javascript audio

我正在创建一个 JavaScript 游戏,并且如果玩家掉入水中(并且死亡),则需要一个启动剪辑到sound

然而,由于水是由多个蓝色立方体组成的,因此音频当前会为玩家所属的每一块“水”重复。

无论如何,音频只播放一次,无论玩家接触多少水块?

我正在尝试使用for statement,但没有运气。

var count = 1;

for (var i = 0; i < count; i++){
    var splash = new Audio("splash.mp3");
     if ( type == "water"){
          splash.play();
     };
};

3 个答案:

答案 0 :(得分:0)

请先修复循环错误...

for (var i = 0; i < 1; i++){
    var splash = new Audio("splash.mp3");
        if ( type == "water"){
            splash.play();
        };
};

请告诉我们这是否解决了您的问题?

答案 1 :(得分:0)

您可能需要更改Audio类,或者您必须跟踪它何时停止播放,以便您可以更改布尔值。

所以

if (!splash.isPlaying()) {
    splash.play();
}

if (!splashPlaying) {
    splashPlaying = true;
    splash.play()
}

答案 2 :(得分:0)

 function isPlaying(audelem) { return !audelem.paused; }

 var count = 1;
 var splash = new Audio("splash.mp3");
 for (var i = 0; i < count; i++){ 
      if ( type == "water"&&!isPlaying(splash )){
           splash.play();
           break;
      };
 };

 var count = 1;
 var splash = new Audio("splash.mp3");
 for (var i = 0; i < count; i++){ 
      if ( type == "water"&&audelem.paused){
           splash.play();
           break;
      };
 };

referene