浏览器同时开两个网易云标签, A 标签开始播放, B 标签会自动暂停是如何实现的?

2021-03-22 22:48:30 +08:00
 yuann72

浏览器同时打开两个标签 https://music.163.com/
B 标签播放音乐,A 标签也播放音乐,B 标签会自动暂停
其中的原理是什么,两个标签之间是怎么通信的?

957 次点击
所在节点    前端开发
3 条回复
geelaw
2021-03-22 22:54:25 +08:00
不知道网易云怎么实现的,但想要实现还是很简单的,比如用 localStorage,每个页面打开的时候生成一个 GUID 并监听 localStorage 的变化。开始播放的时候设置 localStorage 里一项(比如 currentPlayer )为自己的 GUID ;如果这一项变化且变化后不是自己的 GUID 则暂停播放。
yuann72
2021-03-22 23:03:07 +08:00
@geelaw 学到了,原来 localStorage 是可以监听的
Misakas
2021-03-23 09:28:10 +08:00
浏览器提供了页面间通讯的 api [BroadcastChannel]( https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/764077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX