5. 多录音分区(AD14N)
AD14N目前支持多录音分区功能,能在各个分区中独立的进行录音操作。本章着重介绍录音的多分区功能实现流程。将会涉及到app_record.c以及nor_fs_resource.c。
5.1. 1 多录音分区一般流程
在开机初始化中会调用void norfs_init_api(void),此函数实现对录音区域的初始化,会初始化录音的起始地址、结束地址以及字节大小等变量。在分区前需要确保有足够的空间能够存放至少256字节。此流程中以将原本的录音地址一分为二,实现双录音分区为例。
5.1.1. 1.1 创建录音分区初始化
图1 创建录音分区初始化
创建双录音分区初始化步骤:
① 打开nor_fs_resource.c文件; ② 仿照函数norfs_init_api()创建录音分区2的初始化函数norfs_init_api2(); ③ 修改录音分区1函数norfs_init_api()中,norfs_init()传入的结束地址。本章中 将其改为原来长度的一半; ④ 修改录音分区2函数norfs_init_api2()中,norfs_init()传入的起始地址。本章中 将其改为同录音分区1同长度;详情步骤可参考图1。同理,多录音分区也可根据上述步骤修改进行录音分区初始化。
若不选择默认录音地址,可在isd_config.ini文件中自行开辟地址。
5.1.2. 1.2 创建录音切换分区消息事件并设置键位
图2 创建录音切换分区消息事件
图3 设置录音切换分区键位
创建录音切换分区消息事件并设置键位步骤:
① 打开msg.h文件; ② 如图2,在录音操作相关信息处添加录音切换分区消息事件 MSG_REC_NEXT_SECTOR; ③ 打开app_record_key.c文件; ④ 如图3,在IOKEY_RECORD_SHORT_UP定义中添加IOKEY 3作为切换录 音分区按键;可自行命名切换消息事件和选择切换的键位。
5.1.3. 1.3 在app录音任务中实现录音分区切换操作
图4 在app录音任务中实现录音分区切换操作
在app录音任务中实现录音分区切换操作步骤:
① 打开nor_fs_resource.c文件; ② 创建录音分区切换标志norfs_sector_flag; ③ 关闭正在编码或者正在播放的录音任务,防止任务干扰分区的切换; ④ 根据标志选择初始化的录音分区; a.标志为0时,切换至分区2,同时将标志置1; b.标志为1时,切换至分区1,同时将标志置0; ⑤ 播放所在分区最新的录音文件; a.初始化解码器; b.打开录音设备; c.进行录音解码,解码会自动选择该分区最新的文件进行播放;详情步骤可参考图4。同理,多录音分区也可根据上述步骤,通过增加标志的置来选择多录音分区切换。