杰理AC6966B-QFN32蓝牙音频进阶:获取手机歌曲信息——让音箱“报歌名”其实不难

杰理AC6966B-QFN32蓝牙音频进阶:获取手机歌曲信息------让音箱"报歌名"其实不难

做蓝牙音箱开发时,大家可能都遇到过这类需求:希望音箱能通过蓝牙读出手机正在播放的歌名、歌手,甚至显示播放进度。看起来有点"智能",其实杰理AC696N系列的蓝牙协议栈已经把这个功能做好了------只需要把AVCTP协议里相关的元数据通道打开,再注册一个回调函数就能拿到。

下面直接说怎么配置,基于手头的JL杰理AC696N开发板 验证过,同样适用于杰理AC6965E开发TWS音箱方案 等杰理蓝牙音频系列芯片开发项目。

实现步骤

第一步:使能相关支持

打开lib_media_config.c配置文件:

  • 设置 more_avctp_cmd_support = 1,让AVCTP协议栈支持额外的控制命令(包括获取歌曲元数据)。
  • 确保ID3解码相关的宏已经开启。ID3是MP3文件里存放歌名、歌手等信息的标签,蓝牙从手机端收到的元数据本质上也是按类似结构整理的。
第二步:注册信息回调函数

在蓝牙初始化部分的代码中,注册一个回调函数,告诉协议栈:"拿到歌曲信息后,往这个函数里丢"。

复制代码
cbt_music_info_handle_register(user_get_bt_music_info);
第三步:实现回调函数,处理拿到的信息

定义user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len)函数。不同的type代表不同含义:

type 含义
1 歌曲标题
2 艺术家(歌手)
3 专辑名
7 播放时间(毫秒)

示例代码:

复制代码
void user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len) {
    printf("Info type: %d\n", type);
    if(info && len) {
        printf("Content: %s\n", info);   // 打印歌名、歌手等
    }
    if(time) {
        printf("Time: %d ms\n", time);   // 播放时间
    }
}

拿到这些字符串后,你可以在自己的UI(段码屏、LED点阵或通过串口发给主控MCU)上显示,或者做语音播报。

第四步(可选):主动获取播放进度

如果手机端没有主动推送播放时间,你可以定时发送一个"获取播放时间"的命令:

复制代码
// 发送AVCTP命令,获取当前播放位置(单位:毫秒)
user_send_cmd(USER_CTRL_AVCTP_OPID_GET_PLAY_TIME, 0, NULL);

返回值会通过上述回调中的type = 7的time参数传回来。


一点小总结

其实这个功能配置起来并不复杂,核心就是三步:开宏→注册回调→解析数据。相比早期用蓝牙芯片自己去解析SPP/BLE透传的私有协议,AC696N系列直接走标准AVCTP获取手机歌曲信息,兼容性更好,实现成本也更低。

如果你正在用JL杰理AC696N开发板 或者杰理AC6965E开发TWS音箱方案,不妨加上这个小功能。对于一款走量的蓝牙音箱来说,能显示歌名、歌手,用户体验会提升一个明显的档次,而代码改动量可能不到一个小时。

关键词:JL杰理蓝牙音频芯片,AC696N,歌曲信息,AVCTP,元数据,蓝牙协议

相关推荐
恒锐丰科技林技术员23 分钟前
CL5012A 升压型双节锂电池充电芯片方案解析
经验分享·嵌入式硬件·硬件工程
kiros_wang1 小时前
设备类型判断(手机_平板_车机):差异化业务逻辑实现
智能手机·电脑
2601_9654488710 小时前
AI视频制作:做系列节气民俗视频音色不统一,AI 音色克隆省事的方法
人工智能·机器学习·音视频
美狐美颜SDK开放平台10 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
Kuakewei88810 小时前
PW6606快充协议诱骗芯片:纯硬件电阻配置五档电压方案
嵌入式硬件
iCxhust11 小时前
SEGGER 的 J-Scope
单片机·嵌入式硬件
EasyDSS12 小时前
讲座视频资源散存易丢失?视频直播点播EasyDSS校园/视频融媒体平台高效管理视频
音视频·媒体·easydss
路上有只喵13 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇2
单片机·嵌入式硬件
单片机仿真设计13 小时前
Proteus仿真51单片机的智能温控风扇调速系统设计(仿真图+程序)
单片机·嵌入式硬件·proteus
2601_9656196914 小时前
AI视频制作:做历史战争视频,兵力部署的老地图难找,AI怎么自动配战争地图?
人工智能·音视频