gpt4 book ai didi

javascript - 苹果如何定义 "user action"?

转载 作者:行者123 更新时间:2023-11-28 04:30:16 24 4
gpt4 key购买 nike

我目前正在开发一个网络项目,我需要在滑动事件后开始播放视频,但我无法完成这项工作。我正在使用 HTML5 视频播放器和 JS 来检测滑动事件。我首先尝试使用 Hammer.js,它可以更轻松地检测滑动事件,但在努力实现此功能后,我开始使用纯 js。

经过一些调试,我注意到视频 HTMLElement 的 play 方法返回了一个 promise 。当我从滑动处理程序中调用 video.play() 时,此 promise 始终会被拒绝,并显示以下消息:

NotAllowedError (DOM Exception 35): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.

由于这个问题仅存在于 iOS 中,我开始阅读苹果开发人员文档,并注意到许多功能只有在“显式用户操作”后才可用。例如:

Important: The webkitEnterFullscreen() method can be invoked only in response to a user action, such as clicking a button. You cannot invoke webkitEnterFullscreen() in response to a load event, for example.

来源:https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html

这同样适用于从js调用play方法。仅当它是为了响应用户操作而调用时才会起作用。

我的问题是,苹果如何定义“用户操作”?因为显然,滑动事件不是用户操作。

最佳答案

我不确定他们是否有严格的定义,但对于视频来说,通常是“单击”播放按钮。

从一个 Angular 来看,这确实有道理 - 人们的想法可能是,滑动通常与忽略某些内容相关,因此不适合启动视频。

视频敏感的原因通常与用户在移动连接上意外产生大量数据费用有关。

如今这似乎不再是一个问题 - 例如,最新版本的 iOS 现在支持 iPhone 上的内嵌视频自动播放,而这在过去是被阻止的。

关于javascript - 苹果如何定义 "user action"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44675028/

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