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

news2024/11/18 17:41:42

超低功耗、精准定位、快速量产——迷你小巧的合宙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最新资料详见:
www.hezhoudingwei.com  

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2. PH47代码框架二次开发功能特性

2.1. 概述 PH47代码框架为二次开发用户提供了丰富的,面向无人机飞行控制以及其他运动控制领域的功能特性,依托这些预设的功能特性,用户能够在短时间内开发出具体具备强大功能及可靠性的二次开发应用。此章节主要对二次开发特性进行了详细描述…

sentinel原理源码分析系列(一)-总述

背景 微服务是目前java主流开发架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断&…

云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测

背景 如果没有监控,那么最好的情况是没有问题发生,最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当时使用的是 docker-compose 在单台机器上部署若依…

NutUI 单元测试:从 jest 到 vitest

NutUI Vue 自 3.0 版本起,开始使用 vite 作为项目的构建工具,单元测试工具则依然使用 jest。而后 vite 官方团队开源了 vitest 作为 vite 的首选测试框架和 jest 的替代品。 本文主要介绍 NutUI 从 jest 到 vitest 的迁移过程,以及后续对于单…

电商系统开发全攻略:基于Spring Boot的在线商城

2 相关技术 2.1 Springboot框架介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring…

Go 项目开发常用设计模式

设计模式就某些编码场景下的最佳实践,用来解决常见的软件设计问题。Go 语言不是面向对象语言,但是可以使用结构体、接口等类型实现面向对象语言的特性,想要弄懂设计模式,要熟练的使用 Go 语言接口类型 和结构体类型 设计模式总体上…

关于Chrome浏览器F12调试,显示未连接到互联网的问题

情况说明 最近笔者更新下电脑的Chrome浏览器,在调试前端代码的时候,遇到下面一个情况: 发现打开调试面板后,页面上显示未连接到互联网,但实际电脑网络是没有问题的,关闭调试面板后,网页又能正…

Python 爬虫 根据ID获得UP视频信息

思路: 用selenium库对网页进行获取,然后用bs4进行分析,拿到bv号,标题,封面,时长,播放量,发布时间 先启动webdriver.,进入网页之后,先等几秒,等加…

chatglm本地服务器大模型量化cpu INT4 INT8 half float运行、多卡多GPU运行改这一条指令就行啦!

一、ChatGLM3的几种推演方式 ChatGLM3常规方案的GPU推演中half和float是两种最常用的格式,half格式占13GB显存,float格式占40GB显存。此外还提供了几种GPU量化格式的推演:INT4和INT8量化。 CPU版本的ChatGLM3推演: model Auto…

Java 常用的一些Collection的实现类

Java 常用的一些Collection的实现类 Collection 1.集合基础 Java 集合框架是一个强大的工具,它提供了一套标准化的接口和类,用于存储和操作集合数据。Collection 接口是这个框架的核心,它定义了一系列通用的集合操作。 2.Collection接口方法 …

既然有HTTP协议,为什么还要有RPC?

既然有HTTP协议,为什么还要有RPC? ​ 既然有HTTP协议,为什么还要有RPC? 有点既生瑜何生亮的味道。 第一次接触RPC我就很懵,平时我HTTP协议用得好好的,为什么还需要RPC协议? 于是我去百度&am…

最详细!适合AI大模型零基础入门的学习路线+学习方法+学习资料,全篇干货,建议收藏!

前言 随着ChatGPT的横空出世,大模型时代正式来临。千亿甚至万亿参数的大模型陆续出现,各大企业、高校纷纷推出自己的大模型,这标志着通用智能时代的到来。对于零基础的初学者来说,如何快速入门AI大模型,抓住这个时代的…

通过管道和共享存储映射实现进程通信

1.IPC方法 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区&a…

物联网智能项目全面解析

目录 引言 一、物联网概述 1.1 什么是物联网 1.2 物联网的历史与发展 二、物联网智能项目分类 三、关键组件与技术 3.1 传感器和执行器 3.2 连接技术 3.3 数据处理与分析 3.4 用户界面 四、物联网智能项目案例分析 4.1 智能家居 4.2 智慧城市 4.3 工业物联网 4.4…

孩子英语不好,能学编程吗?

随着编程教育的普及,越来越多的家长开始关注孩子的编程学习。然而,不少家长提出了这样的疑问:“孩子的英语不好,是否还能学编程?”毕竟,编程语言是基于英语的,代码中也充斥着大量的英语单词和短…

数据结构-3.6.队列的链式实现

队列可以理解为单链表的阉割版&#xff0c;相比单链表而言&#xff0c;队列只有在添加和删除元素上和单链表有区别 一.队列的链式实现&#xff1a; 1.图解&#xff1a; 2.代码&#xff1a; #include<stdio.h> ​ typedef struct LinkNode //链式队列结点 {int data;st…

【韩顺平Java笔记】第1章

0-1可以看视频&#xff0c;下面记录主要内容 2. 就业方向 Java基础又叫JavaSE&#xff0c;Java有三个主要的就业方向&#xff1a; JavaEE软件工程师&#xff1a;电商&#xff0c;团购&#xff0c;众筹&#xff0c;sns&#xff08;社交网络&#xff09;&#xff0c;教育&…

纠删码参数自适应匹配问题ECP-AMP实验方案(一)

摘要 关键词&#xff1a;动态参数&#xff1b;多属性决策&#xff1b;critic权重法&#xff1b;DBSCA聚类分析 引言 云服务存储系统是一种基于互联网的数据存储服务&#xff0c;它可以为用户提供大规模、低成本、高可靠的数据存储空间。云服务存储系统的核心技术之一是数据容…

winsoft公司Utils组件功能简介

Winsoft Utils Library 2.3 是一个为 Delphi 和 C Builder&#xff08;版本 7 到 12 Athens&#xff09;设计的实用工具库。它提供了一系列组件和类&#xff0c;旨在简化和增强开发过程。以下是一些主要功能和特点&#xff1a; 1.组件集合&#xff1a;包含多种实用组件&#x…

AB plc设备数据 转profinet IO项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集AB PLC数据 2 5 用PROFINET IO协议转发数据 4 6 案例总结 7 1 案例说明 设置网关采集AB PLC数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关&#xff0…