play()方法不会在React中触发(除非有click事件)

时间:2019-07-29 06:32:59

标签: javascript html reactjs google-chrome html5-audio

我有这种播放音频的方法:

playAudio() {
    const audio = new Audio(
        "/some-audio.mp3"
    );

    audio.play();

}

然后通过一些websocket事件触发此playAudio()方法(不会触发用户点击):

someWebSocketEvent() {
   this.playAudio();
}

无法播放音频。但是,如果单击事件触发了此音频,则它将起作用。环顾四周,这是一些Web浏览器策略阻止了音频元素的播放,除非发生click事件,但不确定如何绕过此事件。

有什么办法可以使这项工作成功吗?

1 个答案:

答案 0 :(得分:0)

您要确保资源已加载

const audio = new Audio();

audio.onload = function( audio.play() );

audio.src= '/some-audio.mp3';