Dramivio项目文档下载文档包 ↗
2026.10.04 UTC · Android原生缓存队列本地实现与复审进展 · 真实服务尚未发布Markdown

视觉按最新原型,业务按已确认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 文件未使用区域中的旧记录误判为待确认。依据官方元数据结构读取有效长度后,确认当前三集均已同步;未为这个诊断错误修改业务同步逻辑。

三集实际缓存完成

断网连续播放到第三集末尾

断网冷启动恢复到 3 秒并暂停

最终包拖回 0 秒

回归范围

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 验证。