当浏览器进入后台时,我试图在 iOS 版 Safari 上停止视频。我能够通过页面可见性API做到这一点。
在iOS的主屏幕上,如果我打开控制中心并按播放按钮,它通常会播放上次Safari的内容。
我试图实现的是一种类似Youtube Web移动的行为:它能够防止这种行为。如果您使用运行 Youtube 的选项卡关闭 Safari,则无法按控制中心中的播放并播放内容。
我已经尝试了e.preventDefault()
事件的行为。 我尝试在pageshow
/pagehide
中插入标志(正如我在另一个 SOW 答案中发现的那样,但这些事件似乎没有在后台运行时调用。
此外,我无法通过页面可见性 API 并在其回调中插入标志来控制它:即使事件在后台运行时被调用,"覆盖"HTMLMediaElement.play()
也不起作用,问题与 iOS 的控制中心有关。
就像它不使用HTMLMediaElement.play()
...
有没有人知道如何从网络上覆盖控制中心的"播放按钮"行为?谢谢。
当浏览器进入后台并从用户"中断"点开始重新加载内容时,Youtube 似乎完全卸载了内容。 我决定遵循同样的方式。
此外,同样的iOS行为似乎也发生在Android通知中心(当Chrome显示一个标签正在复制音频时)。