我正在开发一款需要声音支持的游戏。在画布上点击,我想播放我有的4种声音中的一种。我收到一个错误(仅限于android):
Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.
这似乎是因为我在画布上点击播放声音,而不是点击音频元素。什么是解决方法?
更新:
单击画布时必须播放声音,而不是单击音频元素时播放声音。可能的重复对我没有任何帮助。
HTML:
<audio id="audio-1" src="/sounds/r1.wav"></audio>
<audio id="audio-2" src="/sounds/r2.wav"></audio>
<audio id="audio-3" src="/sounds/r3.wav"></audio>
<audio id="audio-4" src="/sounds/r4.wav"></audio>
JS:
function setupSound() {
sound1 = $("#audio-1")[0];
sound2 = $("#audio-2")[0];
sound3 = $("#audio-3")[0];
sound4 = $("#audio-4")[0];
}
function playSound(){
var randomSound = getRandomInt(0,3);
switch (randomSound){
case 0:
sound1.play();
break;
case 1:
sound2.play();
break;
case 2:
sound3.play();
break;
case 3:
sound4.play();
break;
default:
//console.log("NONE");
break;
}
}
//I use PIXI.js
app.stage.on('pointerdown', function () {
playSound();
)};