抖音|蓝牙音乐之歌词同步
文章图片
文章图片
蓝牙音乐之歌词同步
旋律成就经典 , 歌词升华曲目 , 歌词作为最能体现一首歌曲深度的点 , 蓝牙音乐必然也少不了 , 本期分享就和大家聊聊蓝牙音乐歌词同步的故事 。
蓝牙音乐歌词都是从TG端(手机)的音乐播放器通过蓝牙技术传输到CT端的 , 因此保证音乐播放器打开该功能才能正确传输歌词 。 日常生活中常见的几大音乐播放器的设置中都有该功能开关 。
常见的获取歌曲信息的AVRCP指令就如下两条 , 详情参考《蓝牙音乐之AVRCP常用指令介绍》 。
- AVRCP Get Element Attributes(控制通道)
- AVRCP Get Item Attributes(浏览通道)
安卓系统中 Avrcp.java 类作为TG角色 , AvrcpControllerService.java 则作为CT角色 , 这两个类相互配合共同承担了AVRCP协议中定义的相关交互 。
CT端触发 AVRCP Get Element Attributes 请求命令的时机基本上都是在TG端通知到CT端歌曲信息改变时才会主动获取 , 而通知的实现就得依赖 AVRCP Register Notification命令 , CT端主动注册一个 Event = Track 的通知事件到TG , 这样就能实现TG端Track事件改变及时通知到CT , CT再通过命令获取到歌曲信息变化的详细情况 。
具体交互时序图如下图所示:
歌曲信息请求指令主要是获取如下字段的内容:
AVRC_MEDIA_ATTR_ID_COVER_ART 封面艺术字段只有在v1.6版本及以上的AVRCP协议上才支持 , 其他字段中比较重要的就是前三个了 , 分别表示:歌名(歌词)、歌手、专辑名 。 所以蓝牙音乐歌词同步的实现也就是需要获取到 AVRC_MEDIA_ATTR_ID_TITLE 字段所携带的内容 。
因为只有这么几个字段来传输歌曲信息 , 所以在音乐播放器关闭蓝牙歌词同步时 , TITLE字段内保存的就是歌名 , 但是开启蓝牙歌词同步后 , TITLE字段内保存的就是歌词信息 , 即TITLE字段是复用的 。 从而CT端的蓝牙音乐应用需考虑到这样的情况正确处理TITLE中的内容 。
【抖音|蓝牙音乐之歌词同步】下图截取了一小段HCI上的音乐歌曲信息交互 , 给大家更加直观的感受 。
本篇蓝牙歌词同步的分享到这里就结束了 , 感兴趣的小伙伴欢迎私信留言一起讨论 , 共同学习 , 一起进步!
- 明星恋情|柬本地著名乐团首次受邀参加韩国音乐活动
- 电视剧,肖战|肖战最新好消息来袭,音乐作品再获赞,一共有两首
- 新天龙携《国家宝藏》音乐人推出全新音乐数字专辑
- 综艺|音乐+IMG挪威躺,这就是都市人美好的时光
- 8岁甜馨参加音乐会,五官长开,精致的小V脸像极了妈妈李小璐
- 好声音34分钟纪录片感动满满,李健叮嘱学员培养音乐审美,有人从头哭到尾
- 音乐会|《半城烟沙》老歌新唱,又是一个十年,许嵩不愧一代人的青春回忆
- 老狼|因为这事,音乐人集体声讨微博:吃相太难看
- |韩国歌手专辑销量排行榜 展现韩国音乐的发展
- 中国好声音|《中国好声音》最年轻冠军诞生年仅18岁,母亲贷款支持她的音乐