我有这个代码
const gameSounds = {
backgroundTheme: function(){
const backgroundTheme = new Audio('./gameSounds/theme.mp3');
if(backgroundTheme){
backgroundTheme.pause();
}
backgroundTheme.play();
}
我有一个开始按钮,我添加了一个单击事件监听器,当单击发生时,音频将开始播放,但此刻您可以多次单击开始按钮,并且音频将同时播放多次时间,这不是我想发生的事情。
我想到编写一个if语句,该语句将检查音频是否已经在播放,然后暂停或重新启动它,但是我不确定在尝试if(backgroundTheme.play())的if()中写入什么内容,但是没有用...有什么想法吗?
答案 0 :(得分:1)
首先-您只需创建一次new Audio
,然后再对其执行操作。
具有保存播放器状态的全局变量:
var audioObject;
var isPlaying = false;
const gameSounds = {
backgroundTheme: function(){
if (typeof audioObject === 'undefined') {
audioObject = new Audio('./gameSounds/theme.mp3');
}
if(isPlaying){
backgroundTheme.pause();
} else {
backgroundTheme.play();
}
isPlaying = !isPlaying;
}