AI脑洞板
完整教案
自学课件
第 16 课 · 共 35 课

网络电台

你好呀,我是吴老师。

还记得第 13 课说过的那句话吗?

板子放不了音乐文件。

今天要给它补一句:

但板子可以从网上"听"音乐。

这块小小的板子,连上网之后能听全国各地的广播电台 —— 而且还能自己找到你所在城市的台。

读完之后,你应该能:说出"找台"和"放台"是两件事;让板子放出电台;说出为什么播放不占住程序;知道退出前必须做哪一件事。

用时:约 45 分钟。准备:板子、数据线、能上网的 WiFi、一个能出声的环境。


一、先分清:找台,和放台

这是这节课最重要的一条,一开始就说:

"找到电台"和"放出声音"是两件不同的事。

找台和放台是两件不同的事

一个是"查号台",一个是"打电话"。

💡 为什么要分开?因为地址可能来自任何地方 —— 可以是从网上搜的,也可以是你自己敲进去的。 "放"这件事不关心地址是怎么来的,它只管放。

⭐ 这就是"分工"的好处:以后你想加一个"收藏夹", 只需要把地址存起来 —— 放台那半边一行都不用改。

二、先找台

"找台"这件事,一句话就能办完。它会替你做三件事:

它做的就是
① 定位按你的网络出口,判断你在哪个城市
② 翻译把 'Hangzhou' 翻成 '杭州'
③ 搜台找出当地的电台

做完之后,它交给你一叠"地址"。 每一条里有三样东西:

一条地址里有是什么
台名给人看的,像「杭州 FM91.8」
地址给"放台"用的 —— 这才是关键
频率像 918 表示 91.8 MHz

⭐ 注意"地址"这一样 —— 它不是一个名字,是一个能直接拿去用的东西。 为什么非要单独拎出来?下一节就知道了。

三、再放台

有了地址,放台也就一行的事。

⚠️ 但不是立刻出声。 它要先去网上拉一段数据回来(这叫"缓冲"), 大概 1~2 秒之后才有声音。

所以刚点完那一下"没反应",是正常的 —— 不是坏了。

⭐ 播放不占住程序

这一点和你前面学过的东西完全不一样:

播放的时候,程序能干嘛
放一个音(第 13 课)被占住 —— 音放完才往下走
录一段音(第 12 课)被占住 —— 录完才往下走
放电台✅ 不占住 —— 立刻返回,能一边播一边画界面

⭐ 所以电台应用能一边放歌、一边在屏幕上画进度条。

怎么做到的?后台有两个看不见的"帮手"在干活(C 层开了后台任务)。 你只管画你的,它们管拉数据、解码、喂喇叭。

四、它现在什么状态?

因为放台是"慢慢来的",你得一直问它到哪一步了:

radio.state()

返回一个数字,对应几种状态:

状态意思
radio.IDLE没在放
radio.CONNECT正在连
radio.BUFFER正在缓冲(快出声了)
radio.PLAY真的在响了
radio.PAUSE暂停中
radio.ERROR出错了

💡 BUFFER 和 PLAY 要分清:缓冲中还没声音。 看见 BUFFER 就以为"坏了",是新手最常见的误会。

想要一句人看得懂的话? 它还能把状态数字翻成中文,直接画在屏幕上。

五、⚠️⚠️ 退出前必须做的一件事:把它停掉

退出应用之前,一定要让它停下来。

为什么? 因为那两个后台"帮手"还在跑,而且它们把喇叭的采样率改掉了。

不停掉的后果你会看到什么
后台任务还在跑喇叭的采样率没还回 16000
之后用第 12 课录音录出来的是变速的声音

⚠️ 这个毛病最容易被误诊 —— 你可能会以为是"录音坏了"或者"识别不准", 其实是上一个应用没收拾干净。

⭐ 记住这条规矩:你借用了系统的东西,就要还回去。

六、动手做

任务一:先装上那台现成的收音机

板上已经有一台做好的收音机了 —— 不用你从零做。

打开 aiesp32.ai-scratch.cn/apps/install, 在示例应用里找到**「网络收音机」**,装到板子上(和你第 3 课学的一样)。

装好之后屏幕上就是这样 —— 不用你操作,它自己就开始放第一个台了:

网络收音机:顶上写着电台名和城市,进度条下面是调试旋钮,中间那个圆钮在播放

💡 盯住屏幕右上角那个小字:「连接中」→「缓冲中」→「正在播放」。 这三个词是有先后的 —— 它得先把网上的声音攒一点下来,才能开始放。 看见「正在播放」的时候,声音也就出来了。

装上之后,请你亲手试这四件事:

试什么看什么
点一个台,盯着屏幕从「缓冲中」变成「正在播放」,花了多久?
点暂停,等两秒,再点播放恢复得快吗?(比第一次快得多)
拉一下音量条声音跟着变吗?
退出应用,打开第 13 课的钢琴钢琴的声音正常吗?

⭐ 最后一条是重点,别跳过。

钢琴没问题,说明这台收音机走的时候把东西还回去了(它调了 radio.stop())。 没还的话,之后录音、钢琴都会出怪毛病 —— 而且你多半会以为是"钢琴坏了",根本想不到是上一个应用留下的。

任务二:用「优化」改造它

现在它是你的了。长按它的图标,选「优化」, 然后告诉 AI 你想改成什么样 —— AI 会在现有代码基础上改,改坏了还能一键退回上一版。

挑一个来改:

请帮我把这台收音机改成 _____________ :
1. _____________
2. 其余功能都别动,只改我说的这些
3. 改完告诉我你动了哪几行

几个方向,挑一个:

想改成可以这么说
换个样子"配色改成暖色,像一台老式木壳收音机"
加个收藏"我常听的台能存下来,下次打开还在"
加个报时"整点的时候,把当前时间念一句出来"
改多台切换"加两个按钮,能直接切上一个台 / 下一个台"

⚠️ 最后一句"其余功能都别动"不要删。 不加这句,AI 有时会顺手把别的地方也改了。

改完请检查:

  1. 你要的那处改对了吗?
  2. 播放、暂停、音量这些原来的功能,还好用吗?
  3. 不行就长按 →「退回上一版」,回到能用的状态再来一次。

七、只改一个条件

挑一个来改,先说出你的预测,再动手:

✏️ 可以直接在表格里填写
我改的条件我预测会怎样实际怎样
换个别的城市的电台地址
退出前不调 radio.stop()
播放中调用第 12 课的 audio.record()
手动把地址里的 http:// 改成 https://

💡 最后一条会直接失败。原因在这一课不讲, 你只要知道:自己手写地址的时候,必须是 http:// 开头。

八、自检小测

正在加载本课自检小测…

九、还想玩点什么

想做什么可以这样描述给 AI
一键听家乡把家乡城市的电台存下来,一个按钮直接放
电台收藏夹把喜欢的台存进文件,下次打开还在
会报时的收音机整点的时候插一句"现在几点"
音量旋钮屏幕上画个滑块,拖着调音量
自动换台这个台连不上,自动试下一个

⭐ 到这一课,「连上网」这一章就讲完了。

回头看看你走过的路:

课板子学会了什么
13连上网 —— 打开了通往外面的门
14和另一块板直接说话 —— 不用路由器也行
15听全世界的电台 —— 用上了这扇门

再往下,板子要去学一件更厉害的事:听懂你说的话。