如何确定用户是否与文档交互以启动视频?

Dmi*_*lov 9 javascript html5-video phaser-framework

我在 Chrome 中尝试自动播放视频时遇到错误,内容为: DOMException: play() failed because the user didn't interact with the document first.

对于“普通”页面,有一个解决方案:

var promise = document.querySelector('video').play();
if (promise !== undefined) {
  promise.then(_ => {
    // Autoplay started!
  }).catch(error => {
    // Autoplay was prevented.
    // Show a "Play" button so that user can start playback.
  });
}
Run Code Online (Sandbox Code Playgroud)

但是我使用 Phaser 框架Video对象播放视频,该对象不返回承诺,因此我需要确定用户已与before尝试播放视频的页面进行了交互。有什么解决办法吗?

Din*_*nda 2

寻找用户与窗口的交互

var interacted = false;
function fun(){
   interacted = true;
   $(window).unbind("scroll");
   $(window).unbind("click");
   play();
}
$(window).bind("scroll click", fun);
function play(){
     if(interacted){
        //play audio or video
     }
}
Run Code Online (Sandbox Code Playgroud)