
做蓝牙音箱开发时,音量同步这个小功能经常被轻视,实际调试起来却容易出问题:手机调一格音量,音箱声音跳一大截;或者音箱按键调了音量,手机条不动。本文基于JL杰理AC696N开发板的实践经验,把音量同步的核心配置整理出来,希望对杰理蓝牙音频系列芯片开发的朋友有帮助。
一、核心:两个映射表杰理音量同步依赖两个表:
vol_sys_tab:手机16级音量 → 设备系统音量值vol_sync_tab:设备调节音量 → 回传给手机的音量值修改这两个表可以自定义音量同步曲线。例如想让手机前几级更细腻,调整数组即可。
// 示例:自定义10级映射void my_set_vol(u8 my_vol) {app_var.music_volume = vol_sys_tab[my_vol];app_var.opid_play_vol_sync = vol_sync_tab[my_vol];app_audio_set_volume(APP_AUDIO_STATE_MUSIC, app_var.music_volume, 1);user_send_cmd_prepare(USER_CTRL_AVCTP_OPID_SEND_VOL, 0, NULL);}二、首次连接固定默认音量很多产品希望首次连接时用固定音量(如80%),而不是直接跟手机走。加一个标志位:
static u8 is_first_connect = 1;void bt_connected_callback(void) {if (is_first_connect) {app_audio_set_volume(APP_AUDIO_STATE_MUSIC, DEFAULT_VOLUME, 1);is_first_connect = 0;}}三、通话音量互联网配资网站独立控制通话场景用set_default_sco_volume()固定音量,避免突变:
set_default_sco_volume(10); // 固定通话音量四、双向同步(音箱调音量反控手机)默认是手机控音箱。如需音箱按键调音量时反控手机,开启两个宏:
BT_SUPPORT_MUSIC_VOL_SYNCUSER_SUPPORT_PROFILE_HID然后在按键响应中调用volume_up()/volume_down()即可自动双向同步。
五、一点小总结音量同步的核心就是两张映射表 + 几个配置宏。首次连接固定音量、通话音量独立、双向同步这三个常见需求,在JL杰理AC696N开发板和杰理AC6965E开发TWS音箱方案上都能快速实现。最后提醒:不同手机对音量同步的兼容性有差异,建议用多款机型实测验证。
关键词:音量同步,通话音量,AVRCP,双向同步
宏泰配资提示:文章来自网络,不代表本站观点。