1.1 KiB
1.1 KiB
最小化修复方案 - 只修复"视频播放时显示缓冲遮罩"问题
问题
视频已经在播放(有 timeupdate 事件),但缓冲遮罩一直显示。
唯一需要修改的地方
找到 showLoadingOverlay() 计算属性(约第73-85行),只需要调整判断顺序:
修改前:
if (!this.videoHasStarted) return true;
// 视频已经在播放且有正常的 timeupdate,不显示加载遮罩
if (this.isVideoPlaying && this.lastVideoTime > 0) return false;
if (this.videoWaiting) return true;
修改后:
// 如果有 timeupdate(lastVideoTime > 0),说明视频已经在播放
if (this.lastVideoTime > 0 && !this.videoWaiting) return false;
if (!this.videoHasStarted) return true;
if (this.videoWaiting) return true;
原理
- 优先检查
lastVideoTime > 0(有时间更新就是在播放) - 只要视频在播放且不是 waiting 状态,就不显示遮罩
- 这样即使
videoHasStarted状态不对,也能正确隐藏遮罩