前言
到现在为止也开发了许多杰理TWS蓝牙耳机项目SDK的案子,在调试案子时不断的向前辈们学习到了很多关于蓝牙TWS耳机专业的知识。想在这里做一个学习汇总,方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习;
本章详细讲解杰理AD697N芯片按键触摸提示音实现方法
在调试一个TWS蓝牙耳机案子时,按键通常是我们必须要添加的功能,通过按键我们可以实现音量的增大/减少,歌曲的播放/暂停,曲目的切换,开机/关机等特定功能;所有我们必须在按键按下是添加提示音,有提示音的存在方便我们更好的感知按键的状态;在杰理SDK中有非常多可以实现按键提示音的方法。这里出一个常用稳定实现按键提示音的方法;
配置步骤:
1、在audio_key_tone.c文件中找到三个函数:
函数1:int audio_key_tone_play_name(const char *name, u8 preemption)
函数2:int audio_key_tone_play_index(u8 index, u8 preemption)
函数3:void audio_key_tone_play(void)
这3个函数是一环嵌套一环,紧密配合实现最终的提示音播放,接下来详细分析函数;(其实实现按键触摸音不止这三个函数配合,可以一直往深处去挖。本章就想让大家学会如何实现按键触摸音功能)
函数1:int audio_key_tone_play_name(const char *name, u8 preemption)
功能:通过文件名直接播放指定音频文件(例如:"key.WAV")
参数:
const char name:音频文件路径(需确保文件已烧录至设备存储,如Flash或SD卡)。
u8 preemption:播放模式控制(1为抢断当前音频立即播放,0为叠加播放)。
返回值return: 为0表示成功,非0通常为错误;
函数2: audio_key_tone_paly_index(u8 index, u8 preemption)
功能:通过索引号播放预定义文件的提示音(索引映射到具体文件名)。
参数:
index:提示音索引(范围)对应着序号对应表如下图所示
u8 preemption:播放模式控制(1为抢断当前音频立即播放,0为叠加播放)。
内部逻辑:
索引有效性检查:若index >= KTONE_IDEX_MAX则直接返回-1,错误
有效索引时,则通过函数1int audio_key_tone_play_name(const char *name, u8 preemption)播放按键提示音文件;
函数3:audio_key_tone_play(void)
功能:默认按键提示音播放入口函数(无参数,直接触发播放)。
2、现在开始配置提示音文件,配置触摸提示音文件我们需要将触摸提示音文件放入到芯片中使用配置工具放入,如图所示,放入了一个名为" key.WAV " 文件;
3、放入完成后,需在SDK中进行声明该按键提示音文件,如所示在枚举中添加定义,并且该定义对应着数组中的指定文件;
4、在板级配置文件中对该两个宏定义进行使能;
5、在SDK中放入按键提示音播放函数,一般都是放在lp_touch_key.c文件中p33_ctmu_key_event_ird_handler函数中
配置完成了,将SDK烧录进耳机板或者开发板中就可以观察出按键按下是有触摸音出现;
制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!