AC696N开发历程分享——music音量控制与同步

2026年06月22日 17:26    发布者:清月芯世界
摘要AC696N SDK 默认提示音跟随系统音量变化。若需将提示音固定为特定音量(如最大音量播放警报音),需通过三步代码修改实现:关闭 music 音量宏、配置固定音量值、防止静音状态无声音。
一、默认行为与改造需求AC696N 的提示音默认跟随系统音量变化——手机或设备调高音量,提示音随之增大。这种设计在多数场景下是合理的,但在某些产品需求中并不适用。例如,低电量警报或来电提示音需要以固定高音量播放,确保用户在任何音量设置下都能听到。此时就需要将提示音从“跟随系统”改为“固定音量”。
二、三步改造方案第一步:关闭提示音的 music 音量宏提示音默认走 music 音量通道,会跟随系统音量变化。需要找到 board_ac696x_demo_cfg.h 文件,将与提示音音量相关的宏定义关闭,使其脱离 music 音量的控制范围。
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019eee3800537b1daaf480dbd72b7cb8.webp?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1782113108%3B1782156308&q-key-time=1782113108%3B1782156308&q-header-list=&q-url-param-list=&q-signature=237b759bfcdfe0f4437a968a71190bf27b7d580f
第二步:在 audio_config.h 中设置固定音量打开 audio_config.h,找到 SYS_DEFAULT_TONE_VOL 宏定义:
c
#define SYS_DEFAULT_TONE_VOL 20  // 固定提示音音量该值范围取决于 SYS_MAX_VOL 的定义。若希望提示音以最大音量播放,可将该值设为 SYS_MAX_VOL。AC696N 的 app_audio_set_volume 函数中,APP_AUDIO_STATE_WTONE 分支会直接使用此宏作为提示音音量。
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019eee8da0577d52af972e236214d038.webp?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1782118719%3B1782161919&q-key-time=1782118719%3B1782161919&q-header-list=&q-url-param-list=&q-signature=2c1e3baa62701a2f0c7327f29310af7237471160第三步:防止音量为 0 时提示音无声当系统音量为 0 时,提示音可能因音量通道被静音而无法播放。需要在 app_audio_set_volume 函数的 APP_AUDIO_STATE_WTONE 分支中,增加音量下限判断:
c
if (app_var.wtone_volume < 5) {    app_var.wtone_volume = 5;}确保即使系统音量为 0,提示音仍能以最低可用音量播放,避免关键提示被遗漏。
https://ima-notebook-prod.image.myqcloud.com/2/d3kbCeYD2DyOJFf58fofxe/file_manager/019eee3855a578248fe273b481c3bb9f.webp?q-sign-algorithm=sha1&q-ak=AKID9IDtLZZKqGRO7hVFnMn0zjXTXovoTtAN&q-sign-time=1782113129%3B1782156329&q-key-time=1782113129%3B1782156329&q-header-list=&q-url-param-list=&q-signature=a8ca67bbc225b020a520d15b596b067c1857704f
三、补充:音量同步机制若需要实现手机与设备之间的音量同步,AC696N 依赖两张映射表:vol_sys_tab(手机音量→设备音量)和 vol_sync_tab(设备音量→手机音量)。修改这两张表可自定义音量同步曲线。首次连接固定音量、通话音量独立、双向同步等需求均可通过配置宏快速实现。
总结AC696N 提示音音量控制的核心逻辑集中在三个位置:board_ac696x_demo_cfg.h(关闭宏)、audio_config.h(设置固定值)、app_audio.c(防无声处理)。三步走完,即可让提示音脱离系统音量独立控制。音量同步则依赖两张映射表加若干配置宏。掌握这几处关键代码,音量相关的定制需求基本都能覆盖。