当前位置: 首页 > news >正文

你要的录音播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

超低功耗、精准定位、快速量产——迷你小巧的合宙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调试工具:
    https://doc.openluat.com/wiki/52?wiki_page_id=5071

  • 最新固件:
    https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

  • 最新脚本:
    https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/record


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秒,红灯亮起,开始播放录音文件。

今天的分享就到这里了
更多实用示例带你开启应用之门
下一期见~

图片


http://www.mrgr.cn/news/37298.html

相关文章:

  • Django Web开发基础介绍
  • SemiDrive E3 MCAL 开发系列(4) – Gpt 模块的使用
  • 软考高级:系统设计 - MDA 模型 AI 解读
  • 生信初学者教程(十二):数据汇总
  • Windows下jenkins执行远程sh脚本中文乱码问题
  • FPGA实现PCIE图片采集转HDMI输出,基于XDMA中断架构,提供3套工程源码和技术支持
  • 设计强化学习算法解决迷宫问题
  • 新160个crackme - 066-Andrnalin.3
  • Dina: 1.0.1靶场
  • C语言数组探秘:数据操控的艺术【下】
  • 2024年9月27日历史上的今天大事件早读
  • 预备阶段-Android逆向基础
  • 极狐GitLab 17.4 重点功能解读【八】
  • 深入理解 CompletableFuture 的底层原理
  • 四DHCP服务实验
  • MK米客方德SD NAND参考设计
  • C++实现二叉树的创建删除,dfslfs,求叶子结点个数,求叶子结点个数,求树的高度
  • 【单元测试】任务3:JUnit assertThat断言
  • ppython 实现k nearest neighbours k最近邻分类算法
  • python 实现knn sklearn K近邻分类算法