我有一个AngularJS内置的音乐应用程序。
我有应用程序工作。用户可以在其选项卡上播放,暂停,上一个,下一个。但我想让它变得更好。
当用户已经打开选项卡并播放音乐时。当他打开一个新标签并播放另一首歌曲时,我希望第一个标签中的歌曲暂停。
我如何在Angular中做到这一点?
我在stackoverflow上研究过这个问题,但据我所知,我没有找到任何有用的东西,所以任何帮助都是值得赞赏的。
答案 0 :(得分:0)
您可以使用html 5本地存储来保留当前歌曲的值,并从不同的标签中检索此值。当新歌开始播放时,您需要覆盖当前歌曲。然后,您需要轮询此值以暂停歌曲,如果它已过时。查看以下库,以便轻松使用角度局部存储:
https://github.com/grevory/angular-local-storage
https://github.com/gsklee/ngStorage
答案 1 :(得分:0)
存储当前歌曲和标签计数的好饼干应该适合您。我不认为你应该专门针对这种需求寻找localStorage,因为它可以通过cookie轻松处理。
简而言之,一个setTimeInterval函数用于检查cookie的值(在启动应用程序时递增,在tab关闭时递减...分别使用onload和onUnload事件)
如果以给定间隔运行的函数发现cookie值为2暂停该选项卡中的音乐并减少cookie,那么它不会在新选项卡中停止
答案 2 :(得分:0)
您可以使用此代码,希望它清楚:
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");
};