Videojs requestPictureInPicture() 在滚动到顶部和底部时只工作一次

Videojs requestPictureInPicture() works only once on scrolling to top and bottom

我正在使用 Videojs Framework 在页面上显示视频,但画中画功能有问题。我试图在用户向下滚动时自动进入画中画模式,并在用户向上滚动(回到实际的视频播放器)时再次退出画中画模式。
我第一次向下和向上滚动时一切正常,但之后的任何尝试都失败了。
这是我的代码的笔:https://codepen.io/madefortestonly/pen/GRJxMya?editors=1011
这是我从 catch 块得到的错误消息:

DOMException: Failed to execute 'requestPictureInPicture' on 'HTMLVideoElement': Must be handling a user gesture if there isn't already an element in Picture-in-Picture.
at Html5.requestPictureInPicture (https://vjs.zencdn.net/7.6.6/video.js:22669:23)
at Player.techGet_ (https://vjs.zencdn.net/7.6.6/video.js:26085:34)
at Player.requestPictureInPicture (https://vjs.zencdn.net/7.6.6/video.js:26787:21)
at Player.<anonymous> (pen.js:75:16)
at https://vjs.zencdn.net/7.6.6/video.js:4530:9

顺便说一句,有人似乎遇到了与我在这里遇到的问题完全相同的问题:
Why video.requestPictureInPicture() works only once?
您似乎需要单击页面进行滚动才能为下一次尝试工作,因为滚动不是用户信任事件的一部分。
我尝试在向上滚动时使用 javascript 模拟点击,但到目前为止没有成功。

如何修复我的代码以在滚动时自动来回画中画而不告诉用户 he/she 需要单击页面上的某处?

您无法解决这个问题,因为您无法伪造用户交互。与浏览器的本机 PinP 相比,另一种实现方式(例如在页面内调整和重新定位播放器)对于您的用例来说可能是更好的选择。