# 听书软件功能说明

> 版本：0.1 · 文档日期：2026-09-14  
> 适用平台：Android 5.0 及以上  
> 设计原则：本地优先、无广告、不强制账号、播放前后不丢进度

## 一、产品定位

听书是一款把“电子书阅读、系统语音朗读、有声书播放、网络书源、读书笔记和播放记录”整合到一个应用里的本地听读工具。

它适合以下场景：

- 想把本机 TXT、EPUB、DOCX 电子书听出来。
- 想听本地 MP3、M4A、WAV、AAC、OGG 有声书。
- 想在阅读时做笔记、查资料、保存书签。
- 想管理自己的网络书源，不依赖单一内容平台。
- 希望退出应用、暂停、定时停止后仍能准确恢复位置。

## 二、电子书阅读

### 支持格式

| 格式 | 能力 |
|---|---|
| TXT | 编码识别、章节自动拆分、长文滚动阅读 |
| EPUB | 标准章节解析、标题清理、正文提取 |
| DOCX | 读取正文段落并转换为可阅读章节 |

### 阅读功能

- 自动生成章节目录，支持章节跳转。
- 支持上一章、下一章、正文滚动和横向翻页。
- 字号、行距、段落间距可调。
- 阅读页背景、文字颜色独立设置，不受主页主题影响。
- 支持书签添加、查看和跳转。
- 自动保存章节、页面、字符偏移和阅读比例。
- 横竖屏切换后保留当前阅读位置。

## 三、自然语音朗读

### 基础朗读

- 系统 TTS 中文朗读。
- 播放、暂停、继续、停止。
- 按句切分并自动连读下一句。
- 句间自然停顿，减少机械感。
- 阅读页滚动与朗读进度联动。

### 声音调节

- **语速**：适合慢慢听、正常听和快速听。
- **音高**：细微调整声音厚度与音调。
- **音色**：列出系统可用的中文 Voice。
- **朗读风格**：自然、慢速清晰、轻柔、沉稳、夜间轻声。
- **停顿比例**：控制标点后的停顿时长。

### 音质增强

开启后使用系统 TTS 合成到缓存文件，再通过 MediaPlayer 和音频效果链播放：

- 均衡器：轻度增强低频，降低中高频刺耳区域。
- BassBoost：增加低频厚度。
- LoudnessEnhancer：改善小音量下的可懂度。
- 系统不支持合成到文件时自动回退直接朗读。

### 背景音乐

- 选择本地音乐作为朗读背景。
- 支持音量档位：很轻、轻柔、标准。
- 支持单曲循环、列表循环、随机播放。
- 朗读时自动 Ducking，降低背景音乐音量。
- 暂停朗读时可选择暂停音乐或继续播放。
- 背景音乐与朗读由 Android 系统同时混音输出。

## 四、有声书

### 导入格式

- MP3
- M4A
- WAV
- AAC
- OGG

### 播放功能

- 播放、暂停、继续、停止。
- 停止后位置重置为 0。
- 快退 15 秒、快进 15 秒。
- 连续播放：播放完成后自动进入下一本。
- 随机播放：从列表随机选择不同书目。
- 定时关闭：15、30、60 分钟。
- 播放中按 HOME 可继续后台播放。
- 暂停、退出、定时关闭时先更新播放位置。

### 有声书架

- 显示书名、时长、文件大小和已听百分比。
- “正在阅读”区域显示有声书播放记录。
- 有声书记录与电子书记录使用统一分隔和文字结构。

## 五、网络书源

- 支持 JSON 导入和 URL 导入。
- 支持书源搜索、筛选和多选。
- 筛选当前列表后，搜索只从当前结果中查找。
- 支持导出筛选后的书源列表到本地。
- 支持批量管理本地书源。
- 离线书源不可达时显示失败原因，不影响应用稳定。

## 六、读书笔记

### 编辑功能

- 新建笔记。
- 打开笔记列表。
- 保存。
- 另存为 UTF-8 TXT。
- 查找。
- 替换。
- 字数、行数状态显示。
- 自动保存。

### 文件管理

- 默认保存到应用专用笔记目录。
- 文件名格式为“时间 + 读书笔记”。
- 打开列表按“年月日 + 第一行文字”生成标题。
- 可设置自定义笔记目录。
- 应用重启后保留目录授权。
- 外部目录文件不会随卸载应用自动删除。

### 保护功能

- AES-GCM 加密。
- 可以开启保护、修改密码、取消保护。
- 错误密码拒绝解锁。
- 应用不保存明文密码；忘记密码无法恢复。

## 七、主页、记录与主题

### 主页布局

- 电子书架。
- 有声书架。
- 正在阅读：电子书和有声书记录。
- 底部“＋”导入按钮。
- 右上角 ⋯ 主菜单。

### 阅读记录管理

- 长按“正在阅读”可管理。
- 右上角 ⋯ → 阅读记录管理。
- 支持清空阅读记录、关闭阅读记录及相关图标页面。

### 界面模式

- 深色界面。
- 浅色界面。
- 跟随系统。
- 默认浅色主题。
- 阅读页有独立主题设置，主页主题不会覆盖阅读页设置。

## 八、畅快听书优化

- 开启通知权限入口。
- 检测通知权限状态，已开启时显示 ✓。
- 关闭省电模式入口。
- 检测电池优化状态，已关闭时显示 ✓。
- 点击“去设置”优先直达本应用系统设置页。
- 返回应用时自动刷新状态。

## 九、统一播放核心

所有播放类型共用 `PlaybackCore`：

- 统一播放、暂停、继续、停止命令。
- 统一进度保存。
- 统一定时关闭。
- 统一退出保存。
- 统一通知动作。
- 切换电子书朗读与有声书时，先保存旧播放器位置，再释放播放通道。
- 退出、定时关闭使用“保存后停止”，不会把已保存位置重置为 0。
- 用户明确点击“停止播放”保留重置语义。

## 十、隐私与数据

- 电子书、音频、笔记优先保存在本机。
- 没有广告。
- 不强制登录。
- 本地阅读内容不会主动上传到第三方。
- 网络书源搜索是否联网由用户添加的书源决定。

## 十一、当前限制与后续方向

- Android 13+ 首次安装的通知权限主要依赖“畅快听书优化”菜单入口，后续可评估首次使用流程自动申请。
- MIUI 等系统对普通通知 action 的展示不一致；要完善锁屏、耳机、蓝牙和车机控制，建议接入 `MediaSession + MediaStyle`。
- 有声书播放目前主要在 Activity 内完成；若要进一步完善后台播放，可将 MediaPlayer 迁移到前台播放服务。
- 音质增强效果取决于系统 TTS 是否支持 `synthesizeToFile()`；不支持时会自动回退。

## 十二、用户留言服务

- `server.py` 使用 Python 标准库和 SQLite 保存留言。
- 用户提交后只公开数字编号，例如 `#000001`。
- 留言正文、提交时间、IP、设备、联系方式、User-Agent 仅管理员可查看。
- `admin.html` 提供管理员搜索、状态管理、删除和 CSV 导出。
- 数据默认保存在 `data/messages.db`。
- 管理员口令由首次启动自动生成并保存在 `data/server_config.json`。
- 启动方式和安全说明见 `README.md`。

## 十三、快速入口

- 使用教程：`使用教程.md`
- 静态主页：`index.html`
- 用户留言：`feedback.html`
- 管理员工作台：`admin.html`
- 留言服务说明：`README.md`
- 当前 APK：`..\build\apk\TingShu-debug.apk`
- 真机冒烟记录：`..\docs\2026.9.13冒烟测试记录.md`