javascript将背景音频添加到游戏

时间:2020-04-26 16:48:52

标签: javascript game-development javascript-audio-api

我正在尝试将mp3文件添加到我的游戏菜单中,但是除非使用控件并且实际上必须按下游戏画布旁边浏览器上的播放按钮,否则我无法播放该文件。

我去过一些网站和教程,因为我知道这是一个常见问题,但是我似乎无法使其正常工作。

到目前为止,我已经尝试添加

const audioObj = new Audio("/assets/menuTheme.mp3");

audioObj.play();

在更新功能中找到我的game.js文件,但这没用。

我已通过多种方式将添加到我的html文件中

<audio id= 'menuAudio'>
<source src='/assets/menuTheme.mp3'>
</audio>

<audio controls autoplay loop>
<source id = 'menuAudio' src='/assets/menuTheme.mp3'/>
<embed src= '/assets/menuTheme.mp3' autoplay='autoplay' loop='loop'/>
</audio>

然后通过以下方式在我的game.js文件中调用它:

this.sound = document.getElementById('menuAudio');
this.sound.play();

我什至找到了一个为声音创建函数或类的答案

sound = function(src) {
this.sound = document.createElement('audio');
this.sound.src = src;
this.sound.setAttribute('preload', 'auto');
this.sound.setAttribute('controls', 'none');
this.sound.style.display = 'none';
document.body.appendChild(this.sound);
this.play = function() {
    this.sound.play();
}
this.stop = function() {
    this.sound.pause();
}
}

没有任何效果,我为其他事情感到困惑。我知道该文件受我使用的浏览器支持并且已正确上传,因为它会自动播放,并且不会自动显示控制面板。

请帮助:)

已解决:

始终检查是否在浏览器中启用了自动播放... *面对面**

1 个答案:

答案 0 :(得分:0)

首先检查音频是否暂停,然后返回true播放它。这也必须在window.onload事件内发生

if(audio.isPaused)
   audio.play()
相关问题