开发流程。。。 这个方案更合理结合了自动检测和手动触发我理解了你的新思路工作流程┌─────────────────────────────────────────────────────────────────────┐ │ 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逻辑根据播放状态发送音频提供控制网页开始写代码

相关新闻

最新新闻

Light-Weight RefineNet代码实现原理:从论文到PyTorch实现

Light-Weight RefineNet代码实现原理:从论文到PyTorch实现

Light-Weight RefineNet代码实现原理:从论文到PyTorch实现 【免费下载链接】light-weight-refinenet Light-Weight RefineNet for Real-Time Semantic Segmentation 项目地址: https://gitcode.com/gh_mirrors/li/light-weight-refinenet Light-Weight Refin…

2026/7/10 22:05:17
ThriveX-Blog安全防护指南:保护博客免受攻击的10个策略

ThriveX-Blog安全防护指南:保护博客免受攻击的10个策略

ThriveX-Blog安全防护指南:保护博客免受攻击的10个策略 【免费下载链接】ThriveX-Blog 🎉 ThriveX 是一个年轻、高颜值、全开源、永不收费的现代化博客管理系统。它采用前后端分离开发模式,是一个 NextJS Spring Boot 的产物 项目地址: ht…

2026/7/10 22:05:17
植物高效遗传转化方法,请查收!(二)

植物高效遗传转化方法,请查收!(二)

本文内容速览: 遗传转化是作物改良、基因功能研究和分子育种的关键工具。然而,传统方法受限于基因型依赖性、操作复杂以及转化效率低等问题,导致许多物种的研究受到了限制。在先前的推文“植物高效遗传转化方法,请查收&#xff01…

2026/7/10 22:05:17
ThriveX-Blog插件开发教程:扩展博客功能的完整指南

ThriveX-Blog插件开发教程:扩展博客功能的完整指南

ThriveX-Blog插件开发教程:扩展博客功能的完整指南 【免费下载链接】ThriveX-Blog 🎉 ThriveX 是一个年轻、高颜值、全开源、永不收费的现代化博客管理系统。它采用前后端分离开发模式,是一个 NextJS Spring Boot 的产物 项目地址: https:…

2026/7/10 22:05:17
TB6593FNG与PIC18F45K50实现直流电机精准控制方案

TB6593FNG与PIC18F45K50实现直流电机精准控制方案

1. 项目背景与核心目标 在工业自动化和机器人控制领域,直流电机因其优异的调速性能和简单的控制结构而广受欢迎。TB6593FNG作为一款高性能H桥驱动器芯片,配合PIC18F45K50微控制器的强大处理能力,能够实现对直流电机的精确控制和性能优化。这个…

2026/7/10 22:05:17
openEuler LFS课程项目结构深度解析:多高校协作实践平台

openEuler LFS课程项目结构深度解析:多高校协作实践平台

openEuler LFS课程项目结构深度解析:多高校协作实践平台 【免费下载链接】lfs-course This reposiroty will provide the lfs course which has been created in openEuler-practice-courses and migrated here. 项目地址: https://gitcode.com/openeuler/lfs-cou…

2026/7/10 22:00:16

月新闻