注:下面的都是用ai生成的,本人小菜鸡,只是记录学习,佬可以滑走
- 前端技术
-
播放进度监听:短视频前端会监听视频播放的相关事件来记录播放进度。比如通过监听 HTML5 的 标签的 timeupdate 事件, 实时获取视频的播放时间点。同时,还会监听 pause 事件,在用户暂停视频时马上记录当前播放位置,以及 beforeunload 事件,在用户离开页面或刷新页面时保存播放进度,防止数据丢失。
-
本地存储:对于单设备、单浏览器的情况,抖音可能会使用浏览器的 localStorage 或 sessionStorage 来保存播放进度。它会将视频的唯一标识,如视频 ID,与播放进度时间戳关联起来存储。这样在加载页面加载时,前端代码会先从本地存储中读取上次保存的播放进度,如果存在有效数据,将视频的 currentTime 属性设置为该时间点,实现续播。
-
缓存机制:某音采用智能缓存算法,基于用户网络质量的动态缓存策略,在 Wi - Fi 环境下缓存优先级会提升。通过缓存部分视频数据,不仅能确保视频的连续播放,还能在用户续播时,快速从缓存中获取数据,提高续播的速度和流畅性。
-
- 后端技术
- 用户播放记录存储:后端会创建数据表来存储用户的播放记录,包含用户标识、视频ID、最后播放位置以及更新时间等字段。当后端接收到前端发送的播放进度更新请求时,会根据用户标识和视频 ID 查询是否已有记录,有则更新,无则插入新纪录。
- 接口服务提供:后端提供接口供前端进行播放进度的查询(GET 接口) 和更新(POST 接口)操作。
- 分布式存储系统:抖音使用 CDN + 边缘计算的混合架构,CDN 可以将内容缓存在离用户最近的边缘服务器上,当用户请求内容时,可以直接从边缘服务器获取,减少从源服务器获取内容的时间和成本。而边缘计算则是在靠近用户终端的地方部署基础设施资源,将算力、网络、存储等下沉到边缘,提供低时延、高带宽的服务能力。
- 多设备同步技术:当用户在不同设备上登录时,抖音后端会根据用户的唯一标识查询其播放记录,并将播放位置返回给前端,前端再根据该消息设置视频的播放位置,从而实现多设备间的无缝续播。