屏幕内容 · 展开的轮播列表
播放时间线与并行等待任务
配置即时作用于模拟;“暂停演示”冻结时间,“关闭相册自动轮播”只停止自动换页。
逐秒操作会暂停演示。上一秒恢复当时的媒体、等待任务与配置;在回看位置修改配置或资源,会从该位置继续。
展开最近发生的事件
先看这三个场景
连续轮播四类资源
直接点击“开始播放”。本演示默认普通照片等 30 秒切换,普通视频结束即切页;AI 与 Live Photo 首次播完后,再等轮播间隔。
看 AI 的两个动作如何轮流播放
选中 AI 照片,设置“频繁”和 30 秒轮播间隔;一次结束后会并行等待切页与重播。也可以关闭自动轮播,让两个动作在本页继续交替。
看 3 秒重播与 5 分钟插播
在 Live Photo 页关闭自动轮播:每次短视频结束后静态等待 3 秒再播。插播则需要有人、自动轮播开启、AI 模式非关闭;用 60× 或 300× 速度观察。
演示默认轮播间隔 30 秒、AI 时刻频繁;App 代码的默认值仍为 10 秒和适中。配置更新不让模拟时间归零。轮播间隔修改会重置已有切页等待;AI 模式修改重建插播检查,正在等待的 AI 重播任务保留原到期时间,下一轮使用新间隔。新增 / 编辑素材从后续播放开始使用新时长,正在进行的动作保持当前进度。
几种“等待时间”,分别管什么?
轮播、重播、插播使用不同的计时器。数字相同,也不代表同一条规则。
| 参数 / 开关 | 当前代码值 | 它的作用与计时起点 |
|---|---|---|
照片轮播间隔 SgetGalleryScrollInterval() | 默认 10 秒 用户可选 5 秒~24 小时 | 普通照片从本页选中开始计时;AI / Live Photo 首次播放结束后开始等待 S,再切下一项。普通视频结束后立即请求下一项,不追加 S。没有下一项时保持本页。 |
AI 播放冷却时间AI_VIDEO_CALM_DURATION | 5 秒 筛选条件在使用 | 插播候选查询要求某个已下载 AI 动作的“上次播放时间”早于当前时间减 5 秒。它不是页面停留时间,也不是同页重播等待。当前主页播放链路没有调用更新时间的方法,不能据此认为每次播放后一定禁止插播 5 秒。普通进入 AI 页与同页自动重播不检查这个冷却条件。 |
AI 插播间隔T_INSERT_SHOW_INTERVAL | 5 分钟 | 有人、自动轮播开启、AI 时刻非关闭时,每等待 5 分钟尝试一次插播。雷达进入可立即尝试一次;之后再等 5 分钟。检查未通过就跳过本次,不保证每 5 分钟一定播出 AI。 |
AI 播完后循环间隔 RT_AI_PHOTO_REPEAT_DELAY | 频繁:10 秒 适中 / 关闭:5 分钟 | 从一个 AI 动作播放结束开始计时。有人时,关闭自动轮播、列表只有一项,或 S > R + 6 秒,才安排重播。6 秒是代码中的固定余量(5 秒 + 1 秒),并非读取素材真实时长。自动重播不会停止已有切页倒计时;第二次及以后结束通常不会重建它。 |
Live Photo 播完后的重播间隔LIVE_PHOTO_REPEAT_DELAY | 3 秒 | 播完先回静态关键帧,等 3 秒再播。必须同时满足:本页选中、前台、Live Photo 自动播放开启,且相册自动轮播关闭,或列表仅一项。多张自动轮播,即使 S 很长,也不安排 3 秒自动重播。 |
插播播完的退出时间T_INSERT_SHOW_EXIT_DELAY | 定义 10 秒 当前未调用 | 代码保留了这个参数,但当前主轮播没有使用它安排退出。插播 AI 页沿用 AI 页规则,首次播放结束后等用户的 S,再继续到原本的下一项;并非固定等待 10 秒退出。 |
Live Photo 自动播放getAutoPlayLivePhoto() | 默认开启 | 决定首次进入是否播放短视频,以及是否允许 3 秒重播;它与“相册自动轮播”是两个独立开关。关闭相册自动轮播只是不自动换页,AI / Live Photo 仍可能继续动起来。 |
四类媒体,一眼比较
| 媒体 | 进入本页 | 播完 / 展示结束 | 同页自动重播 |
|---|---|---|---|
| 普通照片 | 展示静态照片 | 等待 S 后切下一项 | 没有动态播放;单项仍停留本页 |
| 普通视频 | 准备完成后自动播放 | 多项 + 自动轮播:结束即请求切页 | 无定时循环;单项 / 停止轮播时暂停并回到起点,用户可再次播放 |
| AI 照片 | 有人或雷达未初始化:播放关联 AI 动作;已初始化且无人:只展示照片 | 首次播完等待 S;当前结束处理不主动换回原图,通常保留视频末帧 | 有人且符合条件时等待 R,再选择下一个动作;末项后回到第一个动作 |
| Live Photo | 自动播放开关开:播放短视频;关:展示静态关键帧 | 回到关键帧照片;首次结束后等待 S | 仅停留当前 / 单项时,每次结束后等待 3 秒;多项自动轮播不重播 |
插播与手动操作,会改变正在等待的任务
插播可以打断当前展示
插播是独立任务,当前若是普通照片、视频或 Live Photo,检查通过后可跳入 AI。当前已是 AI 页则尝试重新播放;正在准备或播放时忽略重复请求。临时插入的 AI 项离开后会从列表移除。
手动播放,会重新留足时间
点击 AI 魔法棒会停止切页倒计时,动作结束后重新等 S。Live Photo 点击标识同样停止切页;长按时暂停轮播,松手即回关键帧并重新等 S,按住期间播完则停住等待松手。
离开页面,会取消旧任务
切换照片后,旧页面的重播任务会取消。普通视频 / AI 播放中进后台会暂停,返回可续播;AI 已结束时按条件重建重播等待。Live Photo 进后台回关键帧,已激活的页面返回后按条件等 3 秒再播。
AI 插播为什么可能跳过?
需要:雷达已初始化且有人、相册自动轮播开启、AI 时刻非关闭、非睡眠、存在可用 AI 候选。页面正在滑动、当前页展示不足 1 秒、最近列表提交不足 2 秒,都会跳过当次尝试。候选要有已下载的 AI 动作、满足上次播放时间筛选,且父照片未隐藏、已下载、有有效文件。
当前已是 AI 页:触发当前页播放请求;下一项已是 AI 页:直接跳到下一项;否则随机挑一个候选,临时插到当前位置之后,列表提交后约 200 毫秒切入。列表仅一项且候选仅一个时不新增插播。实际切页还包含查询、列表提交与动画耗时。
两个开关与三种 AI 模式,怎么区分?
“相册自动轮播”控制是否自动切到下一项,不控制视频首次播放。“Live Photo 自动播放”只管 Live Photo 自己会不会动。AI 模式 Off 关闭插播,但 AI 首次进入仍走雷达判断;适中和 Off 的同页重播等待是 5 分钟,频繁是 10 秒。雷达检测节奏也随 AI 模式调整,但插播定时尝试仍都是 5 分钟。
无人时不新准备 AI 动作、不安排 AI 重播,并停止插播定时任务;已经在播放的 AI 不会因为这段雷达处理立刻被强制停止。普通视频、Live Photo 的首次播放不受此 AI 雷达判断控制。当前轮播间隔统一读取用户设置,没有启用旧注释里的“无人固定 30 秒”。
为什么时间线可能在下一次 AI 播放中切页?
AI 首次播放结束时可同时启动“等 S 切页”和“等 R 重播”。重播延迟到达后直接准备下一个动作,不发送停止切页命令;第二次及以后结束通常也不重置 S。因此 S 到时可以在后续动作尚未结束时切页。S > R + 6 秒只用了固定余量,不保证真实的长动作一定播完。雷达状态变化、修改轮播间隔等事件可能重建切页等待,此处演示假设中途无外部事件。
代码里哪些旧注释或参数,不能当作实际规则?
AI 类与候选查询仍有“15 分钟”旧注释,但实际冷却常量为 5 秒。GalleryPlaySettings 仍有“默认 5 秒”注释,但 GlobalValue 的默认读取值为 10 秒。列表稳定保护的注释 / 日志有 3 秒表述,实际比较值是 2000 毫秒。插播退出 10 秒仅有定义。lastInsertShowExitTime被记录但没有被当前插播判断读取。markAiVideoResourcePlayed存在定义与转调,但检索主页链路未发现实际播放调用。
依据与阅读边界
依据当前工作区主轮播代码梳理,基准提交 c4c97194,读取日期 2026-10-13。动画为规则讲解,不执行 Android 播放器;未模拟加载、缓冲、错误、滑动动画或同一毫秒任务竞争的耗时。列表展示为模拟屏幕内容,添加图片仅用作本地封面;不解码或上传实际视频。插播随机使用固定种子,使预测与实际演示一致;冷却筛选保留代码事实,模拟不补写当前主页没有更新的播放时间。AI 关联动作游标在模拟中按资源保留,重头开始会清空;真实 ViewHolder 重新绑定也可能重置游标。本页资源按添加顺序展开,用于讲解播放切换,不模拟上传排序与乱序重排。适用于理解调度关系,具体画面与 ROM 时序需要真机确认。