AIRead 实战拆解:KMM 语音播报 SDK 从 start 到双端播放链路
阅读导航(建议先看) 如果你是第一次接触这套 SDK,建议按下面顺序读: 先看 2 章:理解 commonMain 与双端 actual 的职责边界; 再看 5~6 章:把“主流程 + 双端播放器实现”串起来; 最后看 10 章:按需查 Debug 手册,不必一次读完。 如果你只想快速建立整体认知,优先看 0 + 5 + 9 + 12 四节即可。 0. 这篇写什么 这篇不再重复 KMM 概念,而是聚焦一件事:AIRead 这套 KMM SDK 在工程上到底怎么跑起来。 会重点回答四个问题: 工程目录怎么分层; 核心 API 给了什么能力; 从 start(contentId, sentenceId) 到播放/高亮/回调/重连,链路如何闭环; Android(ExoPlayer)和 iOS(AVPlayer)分别承担了什么。 KMM 基础与平台适配背景放在上一篇:KMM 基础篇。 1. 仓库目录总览 AIRead 仓库根目录: AIRead/ ├── androidApp/ # Android 示例应用(Compose + WebView) ├── iosApp/ # iOS 示例应用(SwiftUI + WKWebView) ├── shared/ # KMM SDK 主模块 ├── gradle/ # 版本目录、发布脚本、wrapper ├── build.gradle.kts ├── settings.gradle.kts ├── gradle.properties └── README.md 先按根目录分工看一眼: ...