当用户打开新选项卡(AngularJS)时暂停应用程序

Pause an application when the user opens a new tab (AngularJS)

本文关键字:AngularJS 应用程序 暂停 用户 新选项 选项      更新时间:2023-09-26


我有一个内置在AngularJS中的音乐应用程序。我的应用程序正在运行。用户可以在选项卡上播放、暂停、上一个、下一个。但我想让它变得更好
当用户已经打开标签并播放音乐时。当他打开一个新标签并播放另一首歌曲时,我希望第一个标签中的歌曲暂停
如何在Angular中做到这一点

我在stackoverflow上研究过这个问题,但据我所知,我没有发现任何有用的东西,所以我们很感激任何帮助

您可以使用html 5本地存储来保存当前歌曲的值,并从不同的选项卡中检索该值。新歌开始时,您需要覆盖当前歌曲。然后,如果歌曲过时,您需要轮询此值以暂停歌曲。查看以下库,以便轻松使用angular中的本地存储:https://github.com/grevory/angular-local-storagehttps://github.com/gsklee/ngStorage

存储当前歌曲和标签计数的Cookie应该会让它为您工作。我认为您不应该专门针对这种需求选择localStorage,因为它可以通过cookie轻松处理。

简而言之,一个用于检查cookie值的setTimeInterval函数(当应用程序启动时增加,当选项卡关闭时减少…分别使用onload和onUnload事件(

如果以给定间隔运行的函数发现cookie值为2,则暂停该选项卡中的音乐并递减cookie,使其不会在新选项卡中停止

您可以使用此代码,希望它很清楚:

window.onblur = function() {
  localStorage.setItem('song_123_pause_time', 1234);
  console.log("pause");
};
window.onfocus = function() {
  var seek = localStorage.getItem("song_123_pause_time");
  console.log("play again");
};