视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
Dramivio Android 解码缓存与续播验收
2026-10-04。已修改短剧库和 juku-mobile,并完成实际 Android 安装验证。三集可控 CENC 视频经现有解码器生成内存 HLS,由 Media3 下载到 App;断网冷启动、连续播放、拖动恢复和联网位置补传通过。App 356/356、平台 257/257及类型检查通过。完整业务版本尚未发布。
实际修复
| 问题 | 修改与验证 |
|---|---|
| 缓存完成后仍占用服务器转发名额,可能挡住第三集 | 增加按当前账号、设备、订单和资产释放的接口。原生完成/失败后释放 RAM 与解码任务;释放确认丢失可重试,不取消已下载许可。实际三集全部完成,服务器转发会话、视频内存及解码任务均为 0。 |
| 重连时身份刷新,准备或进度响应已提交却被客户端拒绝 | 未知准备结果先停止继续签发,清理原资产的临时转发后恢复;进度保留原操作收据重试。测试覆盖响应丢失和同订单恢复,不新增扣次、资产或有效期。真实下载过程中暴露的问题已修复。 |
| 冷启动时初始 0 秒覆盖书签,拖回开头无法准确保存 | 等待原生拖动确认后再接收进度;忽略旧拖动回调。进度条采用松手时的位置。Go 区分“未提供位置”和合法的 0 秒。实际恢复画面为 3.033 秒,显示 0:03;0 秒在本机和数据库均保存成功。 |
复用原生播放器、既有订单存储、播放版本及认证授权;本轮没有新增依赖、数据库表或迁移,也没有接入 Redis。释放接口不能选择其他账号或设备;重复释放幂等。真实历史删除或其他设备的播放冲突仍需用户选择,不会自动覆盖。
安装与数据证据
| 检查 | 实际结果 |
|---|---|
| 环境 | 隔离 Android 36 arm64 模拟器;实际 RN/Media3、Go、Better Auth、内存 PostgreSQL。邮箱、安装资格与视频为明确测试夹具。 |
| 三集缓存 | 新账号、一个订单,三集各 12 秒,720p 为画质偏好;三条原生记录均“已缓存”,合计约 6.7 MB。偏好不等于来源必有该分辨率。 |
| 次数与资源 | 首次扣 3 次;三集原许可和到期时间在重装、断网、续播、补传后保持不变。完成后转发会话 0、RAM 视频字节 0、解码任务 0。 |
| 飞行模式 | 关闭 Wi-Fi/蜂窝并移除调试端口转发,强制关闭后冷启动;三集连续播放至第三集 0:12。API、来源请求、资产和扣次均未增加。 |
| 拖动与恢复 | 第三集拖到 3.003 秒,关闭 App、冷启动后立即暂停;画面时间戳 3.033,进度 0:03。本机书签保持 3.003 秒。 |
| 联网补传 | 数据库三集位置为 12、12、3.003 秒;本机所有版本收到确认,无待提交或冲突。 |
| 0 秒 | 最终 APK 重新安装并保留原缓存;拖至最左端,本机与数据库位置均为 0,全部版本确认。没有 400 错误、重复扣次或新增来源视频请求。 |
| 构建与检查 | 当前 Go 构建、Android APK、iOS Hermes 导出通过;APK 包含离线模块/服务、runtime8、有效测试签名及 16 KiB ZIP 对齐。未据此宣称完整 ELF 或 iOS 合格。 |
三集新账号下载、完整断网播放和 3 秒恢复使用同轮首次 356 测试包;最后补正松手位置后重新构建安装,保留原订单继续完成 0 秒验收。两个包的标识及各自范围保存在验证记录,没有把前一个包的首次下载混记成最终包的新下载。
测试读取器曾把 MMKV 文件未使用区域中的旧记录误判为待确认。依据官方元数据结构读取有效长度后,确认当前三集均已同步;未为这个诊断错误修改业务同步逻辑。




回归范围
App 全量 356 项和类型检查通过;相比此前 344 阶段增加了释放、未知结果恢复、原收据重试和冷启动拖动竞态覆盖,并补充松手端点断言。平台全量 257 项通过;当前相关 Go race、实际 Go/认证/PostgreSQL 联合 race 测试及 Go 构建通过。联合测试额外验证 0 秒写入和相同操作重复提交,第二次不重复应用。
此前 Android SDK 34项、Apple SDK185项、Payload86项、Web167项沿用,本阶段未重跑。Android 缓存过程和端上行为是实际模拟器验证;故障响应、账号切换等部分回归仍用明确适配器。本轮由主 Agent 实施并复核,没有新增独立子 Agent 复审。
能力边界与下一步
Web/App 内每日 10/50 集限制继续生效,同集当天重播或换线路不重复扣次;普通来源优先直连,实际失败才转发,现有解码支持的 CENC 才经 RAM 网关。网站传输路径不写视频磁盘;本轮生成可控测试样本的文件不属于生产传输路径。App 明确缓存的视频保存到本机。
JS 负责在前台启动剩余选集;已启动的原生任务可以独立继续。后台尚未启动的选集不会自动全部推进,完成后的服务器清理在返回前台时执行,临时能力还受现有到期限制。离线位置补传仅用于续播,不生成邀请奖励或可信观看证明。实际 DRM 不受支持。
下一步接真实授权渠道与邮箱,在 Android/iOS 设备上验证网络切换、后台、空间和短期地址。完整 iOS 构建、安装资格及邀请观看证明、剩余选集后台调度、语义搜索和全设计状态、真实广告/商品及正式部署仍未完成。广告、收费和通知配置继续默认关闭。
本地测试包:Android 测试 APK(仅本机测试包,未公开提供下载)。连接本机 API/OTA、使用测试签名,未公开作为正式下载包;运行版本 8 需要新安装包。
最新 runtime11 CENC 模拟器验收已通过:关闭模拟器无法报告有效 Wi‑Fi 时的 Wi‑Fi-only 开关后,3 集加密媒体全部缓存并由离线播放器打开;3 次扣次、7 次媒体请求,服务器转发会话、视频 RAM、解码任务均为0。恢复网络后3条位置均上传,completed=false,不会把离线播放当作邀请可信观看。完整真机、真实来源和生产媒体仍待验收。CENC runtime11 验证。