一直有小伙伴们问,迷你小巧的合宙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秒,红灯亮起,开始播放录音文件。

▼ 点击查看演示效果 ▼

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

你有哪些开发故事分享呢

Air201资产定位模组LuatOS:录音&播放录音功能的操作方法的更多相关文章

  1. 中科微北斗定位模组ATGM336H简介

    36H系列卫星定位模块 产品介绍 ATGM336H是高灵敏度,支持BDS/GPS/GLONASS卫星导航系统的单系统定位,以及任意组合的多系统联合定位的接收机模块.ATGM336H基于本公司自主独立研 ...

  2. 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台

    摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...

  3. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率

    1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...

  4. android camera(一):camera模组CMM介绍

    一.摄像头模组(CCM)介绍: 1.camera特写 摄像头模组,全称CameraCompact Module,以下简写为CCM,是影像捕捉至关重要的电子器件.先来张特写,各种样子的都有,不过我前一段 ...

  5. 【转】android camera(一):camera模组CMM介绍

    关键词:android  camera CMM 模组 camera参数平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos 4210)  作者:xubin ...

  6. led模组的优点和却点

    插件模组 1.是指DIP封装的灯将灯脚穿过PCB板,经由过程焊接将锡灌满在灯孔内,由这种工艺做成的LED模组便是插灯模组:益处是视角年夜,亮度高,散热好:谬误舛错是像素密度小. 表贴模组 1.表贴也叫 ...

  7. 二维条码扫描模组在肯德基KFC的无纸化点餐解决方案

    在如今提倡节约资源的环境下,肯德基在品牌发展中,逐渐实现无纸化点餐,不仅节约了纸质点餐单,而且还具有节约资源的示范作用.而其中二维码扫描模组是这套无纸化点餐方案的重点,在整套设备中,加入二维码扫描模组 ...

  8. FreeSWITCH 增删模组

    今天在尝试FreeSWITCH新功能时,遇到一个问题,就是该功能所需要的模组没有加载,导致写了好久的代码不能看到效果,让人很是忧伤啊! 再此,将FS模组增删的方法记录下,以方便遇到同样问题的童鞋. 具 ...

  9. android camera(一):camera模组CMM介绍【转】

    转自:https://blog.csdn.net/kevinx_xu/article/details/8821818 androidcmm图像处理工作手机三星 关键词:android  camera ...

  10. C# 组件模组引用第三方组件问题

    对接上一文章由于是动态加载指定程序集,会把当前目录下所有dll都加载进来.如果像sqlite这种第三组件调用了由C.C++非.net语言所以生成的Dll.因为自动生成的原因.会把非C#生成的dll都加 ...

随机推荐

  1. python3安装虚拟环境并使用freeze命令迁移模块

    python3安装虚拟环境 #1.安装虚拟环境 pip3 install virtualenv #2.创建虚拟环境 python3 -m venv venv #或者 python3 -m venv . ...

  2. Python开发中,日期时间的相关处理

    在Python开发中,日期和时间处理是一个常见的需求.Python提供了多种模块和方法来处理日期和时间,以下是一些常用的模块和操作.通过介绍一些系统的Python类库以及第三方的类库,我们可以快速的实 ...

  3. 使用 AWS CLI 管理 EC2

    EC2 EC2 是 AWS 的云服务器服务 EC2: Elastic Compute Cloud 创建实例 选择一个系统镜像(AMI): AMI(Amazon Machine Image)定义了启动实 ...

  4. bug记录|NON-STATIC METHOD CANNOT BE REFERENCED FROM A STATIC CONTEXT

    bug记录|NON-STATIC METHOD CANNOT BE REFERENCED FROM A STATIC CONTEXT   问题:原因:静态方法无法调用自己定义的非静态方法 解决方案:1 ...

  5. 为什么C++ 单例局部static初始化是线程安全的?

    为什么C++ 单例局部static初始化是线程安全的? const bg::AppSettings& bg::AppSettings::GetInstance() { static AppSe ...

  6. 免费在线OCR识别工具TextIn Tools,开启智能学习新时代

    传统的学习方式,笔记必须手写摘抄:带字照片只能插入文档:PDF转换要花钱买会员-- 而在线OCR识别工具tools.textin.com,既好用又免费,它不仅仅具有文字和表格识别工具,还包含PDF转文 ...

  7. java基础 -反射笔记

    710,反射快速入门 代码: 先创建一个 re.properties 文件: classfullpath=com.hspedu.Cat method=hi Cat.java package com.h ...

  8. 使用BAT脚本实现文件异机备份,并且还有文件的时间戳

    事件起因: 由于我们单位是创意设计公司,在设计文件的隐私性和保密性上都是有要求的,单位里的办公机的USB口都是禁用的,防治资料泄露:服务器之间还要做实时备份,并且文件的创建时间都是要保证准确性的.但是 ...

  9. 关于Transformer中feed forward layer理解

    今天记录一下个人关于Transformer中前馈神经网络(FFN)的一点理解. 第一点,我们知道,FFN之前是有一个多头注意力机制的模块.我们可以想想一下,如果这个模块直接输出,不经过FFN层会发生什 ...

  10. iOS中RunLoop和线程的关系

    RunLoop又叫运行循环,主要用来管理线程.一个线程对应一个RunLoop,一个RunLoop又有五种模式.只有主线程的RunLoop是默认开启的,所以程序在开启后,会一直运行,不会退出.其他线程的 ...