# 听书模块快速启动指南 ## 一、数据库初始化 ### 1. 执行SQL脚本 在Navicat或其他MySQL客户端中执行: ```sql -- 执行听书模块数据库脚本 source book/src/main/resources/db/audiobook_schema.sql; ``` 或者直接复制 `audiobook_schema.sql` 文件的内容到Navicat中执行。 ### 2. 验证表创建 确认以下表已创建: - `audiobooks` - 听书专辑表 - `audiobook_chapters` - 听书章节表 - `user_listening_history` - 用户听书历史记录表 - `user_listening_progress` - 用户听书进度表 ### 3. 验证数据 确认示例数据已插入(至少5条听书记录和10条章节记录)。 ## 二、后端启动 ### 1. 检查配置 确保 `application.properties` 或 `application.yml` 中的数据库连接配置正确。 ### 2. 启动Spring Boot应用 ```bash cd book mvn spring-boot:run ``` ### 3. 验证接口 访问以下接口验证后端是否正常: - `http://localhost:8080/api/audiobook/recent?limit=8` - `http://localhost:8080/api/audiobook/popular?limit=10` - `http://localhost:8080/api/audiobook/{id}` (替换{id}为实际的听书ID,如1) ## 三、前端配置 ### 1. 检查API配置 确保 `books/utils/config.js` 中的 `BASE_URL` 指向正确的后端地址: ```javascript BASE_URL: 'http://localhost:8080/api' ``` ### 2. 启动前端项目 使用HBuilderX或其他工具启动uni-app项目。 ## 四、功能测试 ### 1. 听书列表测试 1. 打开小程序,进入"听书"页面 2. 查看横幅推荐是否显示 3. 查看"最近上新"列表是否显示 4. 查看"猜你喜欢"列表是否显示 ### 2. 听书详情测试 1. 点击任意听书进入详情页 2. 查看听书基本信息是否正确显示 3. 查看章节列表是否显示 4. 查看章节是否显示免费/VIP标识 ### 3. 播放功能测试 1. 点击免费章节进入播放器 2. 测试播放/暂停功能 3. 测试快进15秒、快退15秒功能 4. 测试进度条拖动功能 5. 退出播放器后重新进入,验证断点续播功能 ### 4. 进度保存测试 1. 登录用户账号 2. 播放任意章节 3. 播放一段时间后退出 4. 重新进入该章节,验证是否从上次播放位置继续 ## 五、常见问题 ### 1. 听书列表为空 **原因**: 数据库中没有数据或查询条件不正确 **解决**: - 检查数据库表是否有数据 - 检查后端日志是否有错误 - 检查前端API调用是否正常 ### 2. 音频无法播放 **原因**: 音频URL无效或格式不支持 **解决**: - 检查音频URL是否可访问 - 确保音频格式为MP3等小程序支持的格式 - 检查网络连接是否正常 ### 3. 进度无法保存 **原因**: 用户未登录或API调用失败 **解决**: - 确保用户已登录 - 检查后端接口是否正常 - 查看浏览器控制台是否有错误信息 ### 4. 章节列表为空 **原因**: 数据库中该听书没有章节数据 **解决**: - 检查数据库 `audiobook_chapters` 表是否有对应听书的章节 - 检查 `audiobook_id` 是否正确关联 ## 六、数据准备 ### 1. 添加听书数据 可以在Navicat中手动添加听书数据,或使用以下SQL: ```sql INSERT INTO `audiobooks` (`title`, `author`, `narrator`, `cover`, `image`, `brief`, `desc`, `category_id`, `status`, `is_free`, `is_vip`, `chapter_count`, `total_duration`) VALUES ('听书名', '作者名', '主播名', '封面URL', '图片URL', '简介', '描述', 1, 1, 1, 0, 10, 36000); ``` ### 2. 添加章节数据 ```sql INSERT INTO `audiobook_chapters` (`audiobook_id`, `chapter_number`, `title`, `audio_url`, `duration`, `is_free`) VALUES (1, 1, '第一章', '音频URL', 3600, 1); ``` ## 七、注意事项 1. **音频文件**: 示例数据中的音频URL为占位符,实际使用时需要替换为真实的音频文件URL。 2. **VIP权限**: VIP章节需要用户登录且为VIP会员才能播放,测试时注意用户VIP状态。 3. **网络请求**: 确保前后端网络连接正常,CORS配置正确。 4. **数据库**: 确保数据库表结构正确,外键约束正常。 5. **音频格式**: 建议使用MP3格式,确保小程序可以正常播放。 ## 八、下一步 1. 替换示例数据为真实数据 2. 配置真实的音频文件存储和访问 3. 实现上一章、下一章自动切换 4. 添加播放倍速调节功能 5. 添加下载功能(离线播放) 6. 优化音频加载和缓冲 7. 添加评论功能 8. 添加收藏功能