课程视频播完画面停在最后一帧,没有下一集入口,用户要返回列表重新找,播放完成率只有 46%。乍看像缓存或者权限的锅,追下去往往不是。

video.addEventListener('ended', () => {
  overlay.classList.add('show');
  if (autoplayNext) play(nextId);
});

追下去是这么回事:ended 事件没有监听,播放器也没有结束页配置。列表页和播放页是两个路由,播完不会自动带出下一条。

「播放结束推荐」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

具体做法是,监听 ended 显示下一集浮层;浮层里放标题 封面和自动播放开关;自动播放前确认用户已交互 避免被浏览器拦。

验收就看一点,视频播完后 1 秒内出现下一集卡片,点一下能直接续播。

作者 9823189