JumpAlang / Jusic-Serve-Houses

一起听歌吧多房间版本(music.alang.run)
http://music.alang.run
GNU General Public License v3.0
571 stars 90 forks source link

歌曲不同步问题 #9

Open endlesshh opened 3 years ago

endlesshh commented 3 years ago

播放歌曲的时候,我用了3个手机去同时进入房间,但是 每个手机播放的音乐总是差了1-2秒。没有同步,什么原因那?

JumpAlang commented 3 years ago

歌曲同步原理:本地时间与服务器时间歌曲开始时间比对。 造成此原因可能因素:1.手机本地时间是否一致。2.手机网络歌曲加载速度。 3.手机运行速度 这是其中一些原因 我在本地浏览器用打开同一个房间是同步的。 不同机器同步问题还要再进一步优化。如有意向欢迎一起研究

endlesshh commented 3 years ago

谢谢,楼主的解答。我在服务器端,提供一个了一个时间戳接口。都用服务时间,问题就解决了。

JumpAlang commented 3 years ago

如果网络延迟,那返回的时间戳岂不是也是不准的

endlesshh commented 3 years ago

如果网络延迟,那返回的时间戳岂不是也是不准的

这个倒是没有考虑,我有时间去外网测试一下。不行就设置一个阀值,服务器返回时间大于当前时间用服务器的。小于当前时间100毫秒就用当前时间

endlesshh commented 3 years ago

如果网络延迟,那返回的时间戳岂不是也是不准的

这个倒是没有考虑,我有时间去外网测试一下。不行就设置一个阀值,服务器返回时间大于当前时间用服务器的。小于当前时间100毫秒就用当前时间

楼主你好,我部署到外网测试了一下,发现全用本地的时间不行,会差个1-3秒。全用服务器时间也不行,由于网络原因也会有差别。我是通过 请求服务器时间之前记录本地时间,服务返回的时间+ (本地当前时间- 记录时间),基本可以了。还是差个几百毫秒左右。

JumpAlang commented 3 years ago

这个思路不错。值得借鉴。感谢分享。