news 2026/5/1 6:55:29

esp32实现在线音频播放

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
esp32实现在线音频播放

环境

vscode+platformio+arduion && 串口,wifi-CSDN博客

代码

// Welcome to www.LingShunLAB.com #include "Arduino.h" #include "WiFiMulti.h" #include "Audio.h" // Digital I/O used #define I2S_DOUT 7 #define I2S_BCLK 15 #define I2S_LRC 16 Audio audio; WiFiMulti wifiMulti; // config your wifi String ssid = "0000"; String password = "000"; void setup() { Serial.begin(115200); delay(1000); Serial.println("\n\nESP32-S3 Audio Streamer Starting..."); // 初始化 WiFi WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); // 添加 WiFi 网络 wifiMulti.addAP(ssid.c_str(), password.c_str()); Serial.println("Connecting to WiFi..."); Serial.print("SSID: "); Serial.println(ssid); // 尝试连接 WiFi,最多重试10次 int retryCount = 0; while (wifiMulti.run() != WL_CONNECTED && retryCount < 20) { delay(500); Serial.print("."); retryCount++; } if (WiFi.status() == WL_CONNECTED) { Serial.println("\nWiFi Connected!"); Serial.print("IP Address: "); Serial.println(WiFi.localIP()); Serial.print("Signal Strength: "); Serial.print(WiFi.RSSI()); Serial.println(" dBm"); } else { Serial.println("\nWiFi Connection Failed!"); Serial.println("Possible causes:"); Serial.println("1. Wrong SSID or password"); Serial.println("2. WiFi network not in range"); Serial.println("3. Network requires special authentication"); Serial.println("4. Hardware issue"); // 继续执行,音频库可能会重试 } // 初始化音频 audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT); audio.setVolume(12); // 0...21 // 只有在WiFi连接成功后才尝试连接音频流 if (WiFi.status() == WL_CONNECTED) { Serial.println("Connecting to audio stream..."); audio.connecttohost("http://ngcdn001.cnr.cn/live/zgzs/index.m3u8"); // 128k mp3 } } void loop() { audio.loop(); // 定期检查WiFi状态 static unsigned long lastCheck = 0; if (millis() - lastCheck > 10000) { // 每10秒检查一次 lastCheck = millis(); if (WiFi.status() != WL_CONNECTED) { Serial.println("WiFi disconnected! Attempting to reconnect..."); wifiMulti.run(); } } if(Serial.available()){ // put streamURL in serial monitor audio.stopSong(); String r=Serial.readString(); r.trim(); if(r.length()>5) audio.connecttohost(r.c_str()); log_i("free heap=%i", ESP.getFreeHeap()); } } // optional callback functions (same as before) void audio_info(const char *info){ Serial.print("info "); Serial.println(info); } void audio_id3data(const char *info){ Serial.print("id3data ");Serial.println(info); } void audio_eof_mp3(const char *info){ Serial.print("eof_mp3 ");Serial.println(info); } void audio_showstation(const char *info){ Serial.print("station ");Serial.println(info); } void audio_showstreamtitle(const char *info){ Serial.print("streamtitle ");Serial.println(info); } void audio_bitrate(const char *info){ Serial.print("bitrate ");Serial.println(info); } void audio_commercial(const char *info){ Serial.print("commercial ");Serial.println(info); } void audio_icyurl(const char *info){ Serial.print("icyurl ");Serial.println(info); } void audio_lasthost(const char *info){ Serial.print("lasthost ");Serial.println(info); } // 添加WiFi事件处理回调 void WiFiEvent(WiFiEvent_t event) { switch(event) { case ARDUINO_EVENT_WIFI_STA_GOT_IP: Serial.println("WiFi Connected! Got IP: " + WiFi.localIP().toString()); break; case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: Serial.println("WiFi Disconnected. Attempting to reconnect..."); wifiMulti.run(); break; default: break; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:06:13

LLM让疫苗副作用预测更准

&#x1f4dd; 博客主页&#xff1a;Jax的CSDN主页 LLM赋能疫苗副作用预测&#xff1a;从数据孤岛到精准预警的范式跃迁目录LLM赋能疫苗副作用预测&#xff1a;从数据孤岛到精准预警的范式跃迁 引言&#xff1a;疫苗安全的数字革命 维度一&#xff1a;技术应用场景——从被动响…

作者头像 李华
网站建设 2026/4/20 21:49:04

AI应用架构师指南:AI驱动客户洞察系统的6层技术架构设计与实践

AI应用架构师指南:AI驱动客户洞察系统的6层技术架构设计与实践——从数据到决策的全链路构建方法论 一、引言:为什么需要AI驱动的客户洞察系统? 1.1 企业的“客户洞察痛点”:从数据爆炸到决策困境 今天的企业面临着前所未有的数据爆炸——线上商城的用户行为日志、线下门…

作者头像 李华
网站建设 2026/4/24 7:26:54

巴菲特的焦点投资策略

巴菲特的焦点投资策略 关键词:巴菲特、焦点投资策略、价值投资、集中投资、长期投资 摘要:本文深入探讨了巴菲特的焦点投资策略。从背景介绍出发,阐述了该策略的目的、适用读者、文档结构以及相关术语。详细解析了焦点投资策略的核心概念,包括其原理、架构,并通过文本示意…

作者头像 李华
网站建设 2026/5/1 6:18:18

5D影院中的4D座椅打造极致沉浸式观影体验

5D影院中的4D座椅带来的多维感官体验 在5D影院中&#xff0c;4D座椅巧妙地运用动态感应技术&#xff0c;给观众带来多维的感官享受。这些座椅能够与影片中的动作场景同步&#xff0c;实时调整其运动&#xff0c;从而让观众在观看时生动体验到*飞行*、*追逐*等激烈场面。每一次剧…

作者头像 李华
网站建设 2026/5/1 6:11:02

Why Web2 → Web3 is slow

1. Java as a “safe sandbox” for governments & enterprises From a real cultural and political aspect of programming, not just technical: Predictable runtimeControlled memoryStandardized librariesBackwards compatibilityVendor supportAuditable behavior …

作者头像 李华
网站建设 2026/4/27 6:17:43

ssm461高校智能排课系统

目录高校智能排课系统摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;高校智能排课系统摘要 高校智能排课系统是一种基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发的智能化教务管理工具&#xff0c;旨在…

作者头像 李华