一直有小伙伴们问,迷你小巧的合宙Air201虽然有很多优点,超低功耗、精准定位,那么它是否支持录音、播放录音功能?
那必须能!高集成化设计的Air201自带了ES8311音频解码芯片(Audio Codec)及MIC麦克,可支持本地的录音功能;使用配套喇叭即可将录音保存的数据进行播放,操作极为方便。
本期,我们就来学习合宙Air201实用示例
——录音和播放录音功能
Air201录音&播放录音功能
合宙Air201资产定位模组——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。
内部集成高效、简单、可靠的LuatOS语言,旨在帮助客户降低开发难度,降低研发成本,以及打造超小超低功耗的精品产品。
接下来,教你从零上手,实现Air201录音和播放的功能。
1. 搭建环境
新同学建议先看前期的基础知识相关教程,更有助于理解和操作。
此时可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/record的脚本。
1.1 硬件准备:
合宙Air201板子自带了ES8311音频解码芯片(Audio Codec)及MIC麦克,硬件主要外接一个喇叭。
-
合宙Air201 PCBA及配套喇叭
-
带有数据通信功能的数据线
-
Win10以上PC
▼ Air201连接喇叭示意 ▼
注意:Air201最大支持8Ω 1.2W功率喇叭(默认),或者4Ω 2.5W功率喇叭。
1.2 软件准备:
-
LuaTools调试工具:
-
最新固件:
-
最新脚本:
2. 调试代码
使用克隆的代码进行测试,代码路径:
LuatOS-Air201\demo\record
2.1 初始化驱动ES8311
Air201板子自带了ES8311音频解码芯片(Audio Codec),所以硬件配置参数是固定的。
ES8311使用了I2C0,电源脚为GPIO2,PA控制脚为GPIO23。
2.2 注册音频事件回调函数
2.3 准备录音
录音API说明
audio.record(id, record_type, record_time, amr_quailty, path, record_callback_time)
-
id:
多媒体播放通道号 -
record_type:
录音音频格式,支持audio.AMR和audio.PCM -
record_time:
录制时长,单位秒,可选参数,默认为0则表示一直录制。 -
amr_quailty:
录音质量,只有在音频格式为audio.AMR的情况下此参数有效。 -
path:
录音文件路径,可选参数,不指定则不保存,可以再audio.on回调函数中处理原始PCM数据。 -
record_callback_time:
单次录音回调时长,单位100ms,默认1即100ms。在不指定录音文件路径时,此参数有效。
2.4 播放录音
播放录音需要使用audio.play() 接口,需要将录音文件的存放路径(path),作为第二个参数传入,就可以将刚刚录音的文件,进行播放。
3. 展示效果
将demo烧录至Air201,烧录进去之后会自动开机(如果有意外没有自动开机的话,请手动开机)。
烧录完程序开机后,等待蓝灯亮起,再对着MIC麦克说话。
经过5秒后,蓝灯灭掉,会自动结束录音。随后间隔2秒,红灯亮起,开始播放录音文件。
▼ 点击查看演示效果 ▼
今天的分享就到这里了
更多实用示例带你开启应用之门
下一期见~
你有哪些开发故事分享呢