开发流程。。。 这个方案更合理结合了自动检测和手动触发我理解了你的新思路工作流程┌─────────────────────────────────────────────────────────────────────┐ │ SERVER.PY 主流程 │ └─────────────────────────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────┐ │ 启动服务器 │ │ - 后台轮询B站API保持不变 │ │ - 检测当前播放视频 │ │ - 检测到新视频自动生成音频 │ │ - 但不发送音频流待机 │ └───────────────────────────────┘ │ ▼ ┌───────────────────────────────┐ │ 等待手机控制指令 │ │ - 手机连接电脑热点 │ │ - 打开网页控制面板 │ └───────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ 手机控制流程 │ └─────────────────────────────────────────────────────────────────────┘ │ ┌───────────────┴───────────────┐ │ │ ▼ ▼ ┌─────────────────────┐ ┌─────────────────────┐ │ 点击 开始播放 │ │ 点击 暂停 │ │ 从第0秒开始发送 │ │ 停止发送音频 │ └─────────────────────┘ └─────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 音频播放逻辑顺序播放 │ │ 1. 从当前音频段的0秒开始发送 │ │ 2. 发送完整个文件约23秒 │ │ 3. 检查秒数是否达到20的整数倍 │ │ - 是 → 切换到下一段 │ │ - 否 → 继续播完当前段 │ │ 4. 所有音频播完 → 回到待机状态 │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 后台任务持续运行 │ │ - 监控B站当前播放视频 │ │ - 如果视频切换自动生成新音频 │ │ - 更新当前视频的音频段列表 │ │ - 更新总时长 │ └─────────────────────────────────────────────────────────┘详细流程阶段1启动 待机启动 server.py │ ├─ 启动后台轮询线程每4秒检测B站 │ ├─ 检测到视频 → 记录 bvid │ ├─ 检查音频文件是否存在 │ │ ├─ 存在 → 记录音频段列表 │ │ └─ 不存在 → 调用 watch.py 生成 │ └─ 视频切换 → 更新音频段列表 │ ├─ 启动HTTP服务器 │ ├─ / → 控制网页 │ ├─ /stream → 音频流待机状态不发送数据 │ └─ /status → 当前状态视频信息、进度等 │ └─ 等待手机连接阶段2手机控制手机连接电脑热点 → 打开 http://电脑IP:8080/ │ ▼ 网页显示 - 当前视频标题 - 总时长 - 已生成音频段数 - 播放状态待机/播放中/已播完 - 控制按钮[开始播放] [暂停] [重置] - 进度条显示 │ ▼ 点击 [开始播放] │ ▼ 服务器开始从第0段发送音频 │ ├─ 播放第1段0-20s实际23秒 │ └─ 发送完整文件 │ ├─ 播放第2段21-41s实际23秒 │ └─ 发送完整文件 │ ├─ 播放第3段42-62s实际23秒 │ └─ 发送完整文件 │ ├─ ... 直到所有段播完 │ └─ 所有段播完 → 回到待机状态阶段3切换逻辑播放过程中后台轮询持续工作 │ ├─ 检测到视频切换 │ ├─ 更新音频段列表 │ ├─ 重置播放进度 │ └─ 回到待机状态等待重新开始 │ └─ 检测到同一个视频 ├─ 继续播放 └─ 不中断与ESP32的关系┌─────────────────────────────────────────────────────────────────────┐ │ ESP32 角色 │ └─────────────────────────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────┐ │ 连接电脑热点 │ │ 接收音频流并播放 │ │ 无控制逻辑纯接收端 │ └───────────────────────────────┘ESP32只负责连接电脑热点请求/stream获取音频播放音频通过I2S所有控制逻辑在电脑上手机通过网页控制电脑。优势保留B站自动检测视频切换自动处理手动控制播放用户决定何时开始顺序播放不会漏段不会重叠ESP32简化只需接收和播放手机控制直观大按钮适合操作下一步实现按这个逻辑重写server.py保留后台轮询检测视频、生成音频添加播放状态机待机 → 播放中 → 完成添加控制API开始、暂停、重置修改/stream逻辑根据播放状态发送音频提供控制网页开始写代码

相关新闻

最新新闻

微信聊天记录怎么永久保存?WeChatMsg免费导出工具完整指南

微信聊天记录怎么永久保存?WeChatMsg免费导出工具完整指南

微信聊天记录怎么永久保存?WeChatMsg免费导出工具完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…

2026/9/3 10:30:16
STM32 DCMI接口驱动OV7670摄像头:HAL库图像采集实战指南

STM32 DCMI接口驱动OV7670摄像头:HAL库图像采集实战指南

简介:本资源是面向嵌入式视觉开发者的STM32L496平台DCMI摄像头驱动实战工程,聚焦超低功耗MCU与OV7670/OV7725 CMOS传感器的HAL库级集成方案,适用于智能监控、机器人视觉、边缘图像采集等场景,适合具备Cortex-M基础和HAL库经验的中…

2026/9/3 10:30:16
双电机整车动态控制:从同步防滑到扭矩矢量全解析

双电机整车动态控制:从同步防滑到扭矩矢量全解析

简介:本资源是一套面向电子信息工程、计算机与数学等专业本科生的双电机协同控制教学实践方案,聚焦驱动防滑、横摆力矩调节、电子差速及转速同步四大核心策略,解决车辆动力学建模与实时控制算法验证的关键问题,适用于课程设计、期…

2026/9/3 10:30:16
Matlab实现行人航位推算:从传感器数据到室内定位轨迹

Matlab实现行人航位推算:从传感器数据到室内定位轨迹

简介:本资源面向定位算法初学者与MATLAB实践者,提供一套完整的行人航位推算(PDR)算法实现与验证方案,聚焦于室内无GNSS环境下的步态建模、航向解算与轨迹推估等核心问题。压缩包共16个文件,含7个MATLAB源程…

2026/9/3 10:30:16
Java俄罗斯方块课设:从MVC架构到多线程与Swing图形界面实战

Java俄罗斯方块课设:从MVC架构到多线程与Swing图形界面实战

简介:本资源是一份面向Java初学者与课程设计实践者的俄罗斯方块小游戏完整实现方案,聚焦图形界面开发、游戏逻辑建模与面向对象编程能力训练。压缩包共41个文件,含10个核心Java源码文件(涵盖MyTetris主类、Block方块类、GameBoard…

2026/9/3 10:30:16
Qwen3-ASR Pro离线语音转文字工具:长音频处理与说话人分离实战

Qwen3-ASR Pro离线语音转文字工具:长音频处理与说话人分离实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 10:25:16