littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于ESP32和Python的B站音乐播放系统

项目简介

本项目是基于ESP32开发板和Python服务端的系统,可依据输入的关键字自动播放bilibili音乐。设备端借助蓝牙连接来播放音频,服务端与设备端通过UDP连接进行交互,能完成音量调节、播放、暂停等操作。

项目的主要特性和功能

特性

  • 设备端采用ESP32开发板,使用C++编写,依赖VSCode + platformio环境。
  • 服务端基于Python,利用ffmpeg对B站视频音频进行解码和编码推流。
  • 设备端与服务端通过UDP连接,以轮询方式接收服务端指令。

功能

  • 支持通过关键字或bvid搜索B站视频并播放音频。
  • 可在服务端修改配置,实现对设备端音量调节、播放、暂停等控制。

安装使用步骤

硬件环境准备

  1. 一台服务器(个人电脑或其他服务器设备)。
  2. 一个ESP32开发板。
  3. 一副蓝牙耳机或蓝牙音箱。
  4. 具备wifi环境。

软件环境准备

  1. 在服务器上安装ffmpeg,并确保可通过命令行ffmpeg直接调用。
  2. 服务器具备python3环境,测试环境为3.10。

使用步骤

  1. 修改设备端代码(src/main.cpp)中的wifi名称、密码。
  2. 修改设备端代码(src/UDPMessageController.cpp)中的SVR_ADDRESS字段,将IP改为自己的服务器地址。
  3. 将设备端代码编译、烧录至esp32开发板。
  4. 打开蓝牙设备搜索状态并靠近esp32开发板,开发板会自动连接最近的蓝牙设备并记录。
  5. 启动服务端,在服务端目录运行python server/server.py
  6. 设备端正常连接服务端后,会根据设备id在server/data目录下生成一个json文件,在服务器端修改该文件并保存,即可使修改在设备端生效。文件字段描述如下:
    • "volume":设备音量,填写一个数字。
    • "paused":是否暂停,1为暂停,0为播放。
    • "music_url":暂时无用。
    • "server_url":局域网中的服务端IP端口,如http://192.168.137.1:8180
    • "bvid":B站Bvid号,填写后播放Bvid对应的视频音频。
    • "keyword":搜索关键字,填写后自动播放B站搜索结果的第一条结果。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】