快手前端怎么准备
快手前端面试常问滑动 Feed 和直播间:播放器不能每个卡片新建,礼物动效不能卡死滑动。
五题覆盖播放器复用、预加载、礼物、弱网和体验争议。用你做过的视频或直播页来答。
快手怎么面前端
- 播放器生命周期是核心。
- 动效要谈对象池和降级。
- 弱网要谈先音频后视频或先封面。
面试阶段与知识点
第一批不把每个阶段拆成独立 URL,避免程序化重复页。阶段对应下面的题,练完再用模拟面试串起来。
- 播放器:复用。
- 礼物:动效预算。
- 弱网:直播。
- 体验:自动播放。
值得开口练的题
每题给考察点、思路、结构化参考答案和追问。参考答案用来组织语言,面试时必须换成你自己的项目事实。
上下滑视频如何复用播放器而不是每个卡片 new 一个?
考察点
- 实例池
- 状态复位
- 解码
回答思路
维护固定数量播放器实例池,滑入绑定新源、滑出复位,封面先出再切换解码画面。
结构化参考答案
- 实例池大小通常为三个:当前、上一条、下一条,禁止为每个卡片 create 新 video 元素。
- 切源前 remove 旧事件监听并重置 playbackRate、volume,避免串台与内存泄漏。
- 先展示封面图,canplay 后再淡入视频层,弱网时用户仍有视觉反馈。
- 监控活跃 player 实例数与 detached DOM 节点,异常增长说明复用逻辑有泄漏。
面试官可能追问
- 快速连滑怎么办?
- 声音如何只出当前条?
- 如何测内存?
礼物全屏动效导致滑动掉帧,你怎么降级?
考察点
- 预算
- 队列
- 低端机
回答思路
礼物动效要有帧预算与队列上限,用户滑动期间自动降级为静帧或轻量飘屏。
结构化参考答案
- 同时渲染的全屏礼物动效设硬上限,超出进入队列依次播放,禁止无限叠加。
- 检测到 scroll 或 touchmove 活跃时,当前动效切换为静态最后一帧或缩小版。
- 低端机档位只保留文字飘屏与简单 Lottie,跳过全屏 SVGA 或粒子效果。
- 礼物渲染与视频解码争 GPU 时礼物让路,优先保证 Feed 滑动帧率。
面试官可能追问
- 付费用户动效被降级如何解释?
- 如何避免队列无限涨?
- 谁定等级?
弱网进直播间,你先保画面还是声音?
考察点
- 体验
- 码率
- 重连
回答思路
直播弱网通常先保音频与互动状态,画面降码率,长时间断流要给用户明确网络提示。
结构化参考答案
- 启用自适应码率,弱网先降到低清甚至纯音频,网络恢复再逐步升档。
- 断线重连保留 roomId、礼物队列与评论上下文,回房后无需用户重新进入。
- 连续 N 秒无有效音视频帧时展示「网络不稳定」提示,并提供一键重连按钮。
- 礼物动效与评论区刷新可在极弱网下降级或暂停,把带宽留给主路音视频。
面试官可能追问
- 如何避免反复升降码?
- 后台回来如何续?
- 弱网是否禁用高清礼物?
预加载下一条视频,流量和体验如何平衡?
考察点
- 仅 Wi-Fi
- 窗口
- 取消
回答思路
只预加载相邻一条的关键片段,滑走立即 abort,蜂窝网络比 Wi-Fi 更保守。
结构化参考答案
- 预加载窗口限定为 current 与 next 两条,禁止预取整条 Feed 队列。
- 检测到 saveData 或蜂窝网络时缩短预载时长或仅预载 metadata。
- 用户快速滑走时 abort 进行中的预载请求,避免浪费流量与带宽争抢。
- 埋点对比预载带来的首帧缩短与额外流量消耗,用数据调参而非固定策略。
面试官可能追问
- 用户来回滑会不会重复下?
- 如何尊重系统流量保护?
- 预加载是否算播放?
产品要默认外放自动播放,你怎么评估风险?
考察点
- 场景
- 系统策略
- 投诉
回答思路
公共场合默认外放是高投诉风险,应遵循平台自动播放政策并默认静音、手势开声。
结构化参考答案
- 梳理 iOS/Android WebView 与浏览器 autoplay 策略,方案不得违反平台限制。
- Feed 与直播间默认 muted autoplay,用户点击音量图标后才 unmute 并记住会话偏好。
- 小流量实验观测外放相关投诉、完播与次留,投诉超阈值立即回滚默认策略。
- 把政策依据与实验结论写入 PRD 附件,避免后续版本再次争论同一问题。
面试官可能追问
- 如果竞品外放你跟不跟?
- 直播间是否例外?
- 前端能否拒绝?
和岗位、模拟面试一起用
资料管理里保存目标岗位 JD,模拟面试会按简历出题。点题目下的按钮会把本题带进模拟开场,仍需先绑定简历与岗位。