| 本帖最后由 麦壳maikemaker 于 2025-4-29 20:55 编辑 
 前面写了小白避坑,收集资料学习的过程中,有人做esp32网络收音机,于是让大模型写了一个demo。
 
 首先准备网络音频链接
 安装浏览器插件“猫爪”
  ,教程https://cat-catch.bmmmd.com/ 打开蜻蜓FM:https://www.qtfm.cn/播放你喜欢的广播或者有声书等
 
  
 安装Arduino库
 
  
 代码
 
 复制代码#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include "Audio.h"  // 使用ESP32-audioI2S库
// 硬件配置(匹配MAX98357A模块)
#define I2S_BCLK 45  // 位时钟
#define I2S_LRC  46  // 左右声道时钟
#define I2S_DOUT 42  // 数据输出
// 网络配置
const char* ssid = "waoo2111280";
const char* password = "waoo2111280";
Audio audio;
WiFiMulti wifiMulti;
void setup() {
  Serial.begin(115200);
  
  // 初始化I2S引脚
  audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
  audio.setVolume(12); // 音量范围0-21
  // 连接WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi connected");
  // 播放网络音频(示例URL)
  audio.connecttohost("https://lhttp-hw.qtfm.cn/live/1947/64k.mp3"); // 替换为你的音频流URL
}
void loop() {
  audio.loop(); // 必须持续调用以处理音频流
  
  // 通过串口输入新URL(可选功能)
  if (Serial.available()) {
    audio.stopSong();
    String url = Serial.readString(); 
    url.trim();
    if (url.length() > 5) {
      audio.connecttohost(url.c_str());
    }
  }
}
// 可选:音频事件回调函数
void audio_info(const char *info) {
  Serial.print("Audio Info: "); Serial.println(info);
}
 
 修改音频链接:
  
 编译并上传即可。
 
 |