gpt4 book ai didi

javascript - 使用 setTimeout 全屏显示

转载 作者:行者123 更新时间:2023-12-01 15:41:56 25 4
gpt4 key购买 nike

我有一个网页,我想让用户单击一个按钮并开始以全屏模式观看视频。但是,我不希望在单击按钮后立即播放视频。我希望它等待几秒钟,然后播放视频并全屏显示。为达到这个;我已经像这样使用了 setTimeout 函数;

 function startVideoAfterSecs(seconds){
setTimeout(() => {
this.activateFullscreen(); // function to go fullsreen
this.player.play();
}, seconds);
};
我知道没有用户交互就不可能全屏,应该有一些用户事件来触发它。这就是为什么, startVideoAfterSecs绑定(bind)到按钮的 onclick事件。但是,我仍然收到错误消息;

Unhandled Rejection (TypeError): fullscreen error


我知道这个错误导致浏览器阻塞,因为它不接受它作为用户操作,因为 setTimeout正在使用功能。有没有办法解决这个问题?
提前致谢。

最佳答案

"startVideoAfterSecs is bound to a button's onclick event"


但是 this.activateFullscreen()this.player.play()不再是,因为它们是从超时回调中调用的。
但实际上这甚至不是问题,更多的是在一段时间后浏览器不会认为调用仍然来自用户交互,在 Chrome 中似乎是 5 秒左右,但它很可能随时发生变化。
对于 play()调用,您可以通过直接在单击事件处理程序中调用它,然后尽快暂停来解决该问题。这会将 HTMLMediaElement 标记为用户激活的,并且您可以随时在其上调用 play。
但是,对于全屏模式,除了请求其他用户的交互,或者在给定的时间内完成之外,别无他法。

关于javascript - 使用 setTimeout 全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63313975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com