篮球口袋教练 HarmonyOS 学习应用(01):本地视频课程的资源组织
一、本地视频课程的资源组织的状态来源“本地视频课程的资源组织”要处理的问题是篮球课程视频要能从 rawfile 稳定进入播放器。状态边界、资源生命周期和失败路径需要在页面组合之前确定窗口变化、断网、返回页面和重复操作才能沿同一套规则恢复。“本地视频课程的资源组织”的关键约束是状态可追踪、资源可释放、失败可恢复。代码片段和表格分别说明这些约束如何落地。参考 image。二、本地视频课程的资源组织的处理链路“本地视频课程的资源组织”采用四层分工输入层接收点击、文本和选择领域服务层完成校验、转换和持久化页面状态层订阅明确字段异常层处理空数据、权限、网络、设备能力和资源缺失。页面扩展时只接入对应层不复制已有判断。层级责任这篇的落点输入层收集点击、筛选、文本或文件选择篮球课程视频要能从 rawfile 稳定进入播放器服务层校验参数、读写数据、处理异步结果视频资源、课程 id 和播放页状态层用可观测字段驱动 UI 刷新选中态、加载态、错误态分离验收范围正常输入、空状态、失败与恢复页面状态、结构图与异常结果三、关键字段与更新约束关键实现聚焦状态从页面进入服务层后的约束输入先归一化状态只经由一个入口更新失败信息保留给页面反馈。static getPackagedVideoFileName(context: common.UIAbilityContext, courseId: string): string { const asset findCourseVideoAsset(courseId) if (asset undefined || !CourseVideoService.rawVideoExists(context, asset.fileName)) { return } return asset.fileName } private resolveVideoSrc(course: Course): ResourceStr { const packaged CourseVideoService.getPackagedVideoFileName(getContext(this), course.id) return packaged.length 0 ? $rawfile(packaged) : }资源映射先按课程 id 找到文件名再在 rawfile 列表中确认资源真实存在播放器只接收已解析出的 $rawfile 资源。模拟器中“三威胁与持球姿势”播放时详情页回读到 resource://RAWFILE/videos/skill_triple_threat.mp4。“本地视频课程的资源组织”的入口验收检查三项不可用条件是否禁用入口、离开后状态是否复位、失败后是否保留继续操作的路径。失败分支与主流程使用同一套状态回收规则。四、本地视频课程的资源组织的失败出口边界流程决定“本地视频课程的资源组织”是否稳定空数据不能继续渲染详情异步失败要给出下一步操作多窗口或跨设备状态不能只依赖页面局部字段。“本地视频课程的资源组织”的资源与状态不跟随单个组件生命周期。需要保留的内容由持久化层接管需要释放的订阅和任务由模块停用阶段统一处理。五、不同窗口下的检查进入“本地视频课程的资源组织”对应页面确认入口、标题、主要内容和操作区可见。完成一次目标交互核对加载、成功或下一步状态是否同步。触发空输入、重复操作或不可用条件确认提示和恢复入口。返回后重新进入核对选中态、列表、统计或播放状态。分别检查窄窗口与宽窗口确认文本、卡片和操作控件没有重叠。六、本地视频课程的资源组织的收束“本地视频课程的资源组织”不依赖某个孤立 API数据模型、服务边界和异常处理配合起来页面行为才会在重复操作中保持一致。