我正在制作一个避免游戏的小行星,当我的生活结束时,我正在执行以下代码:

gameover.play();

而gameover的定义如下:
var gameover = new Audio('gameover.wav');

当我执行代码时,它会循环播放声音,而我只想播放一次,我该怎么做?谢谢。

最佳答案

我相信将 loop 属性设置为false将实现您的目标。

var birdSound = new Audio('http://www.noiseaddicts.com/samples_1w72b820/4929.mp3');
birdSound.loop = false;
birdSound.play();

var birdSound = new Audio('http://www.noiseaddicts.com/samples_1w72b820/4929.mp3');
birdSound.loop = false;
birdSound.play();

var statusElem = document.getElementById('status');
var startTime = Date.now();
updateStatus();

function updateStatus(){
  if (birdSound.ended){
    statusElem.innerText = 'Stopped';
  } else {
    statusElem.innerText = 'Playing (' + ( ( Date.now() - startTime ) / 1000 )  + ')';
    window.setTimeout(updateStatus, 50);
  }
}
Audio Status: <span id="status">Playing</span>


经过测试:
  • Chrome 44.0.2403.155(64位)
  • Firefox 40.0.2
  • Safari 8.0.6
  • 维瓦尔第1.0.94.2(咯咯笑)
  • 07-24 17:04