Files
Obsidian/项目文档/同力/蓝牙音乐/蓝牙音乐模块流程与开发指南.md
T
2026-11-05 14:35:04 +08:00

2.8 KiB

蓝牙音乐模块流程与开发指南

这是入口文档。
本次排版已去掉 Mermaid 图,改为“纯文本流程块 + 编号步骤表 + 拆分文档”,适合 Obsidian 直接阅读。

推荐阅读顺序

顺序 文档 先看什么
1 00_总览_一页看懂 先建立模块整体印象。
2 01_启动初始化流程 看蓝牙音乐 SDK 是怎么启动的。
3 02_A2DP连接与断开流程 看“有没有声音通道”怎么判断。
4 03_AVRCP歌曲信息与播放状态流程 看歌名、歌手、播放状态从哪里来。
5 04_播放控制与音频焦点流程 看播放、暂停、切歌、焦点抢占。
6 05_Launcher卡片流程 看桌面卡片怎么显示和控制蓝牙音乐。
7 06_开发入口_风险点_测试清单 开发前定位文件、风险点和测试项。

最短主链路

用户点击播放

用户
  ↓
BluetoothMusicActivity.onClick()
  ↓
BtMusicViewModel.playBtMusic()
  ↓
BtMusicControlManager.playBtMusic()
  ↓
BtMusicManager.requestFocus()
  ↓
BtMusicAudioManager.requestAudioFocus()
  ↓
BtMusicManager.playBtMusic()
  ↓
BluetoothAvrcpClient.play()
  ↓
MediaControllerCompat.TransportControls.play()
  ↓
手机音乐 App 开始播放

手机切歌后刷新页面

手机音乐 App 切歌
  ↓
Android 蓝牙栈 AVRCP 元数据变化
  ↓
MediaBrowserClient.onMetadataChanged()
  ↓
BluetoothAvrcpClient.onMetadataChanged()
  ↓
BtMusicManager 解析歌曲信息
  ↓
BtMusicViewModel.mLiveDataMusicInfo
  ↓
BluetoothMusicActivity 更新歌名/歌手/封面/时长
  ↓
BtInfoPushManager.sendMusicInfoToLauncher()
  ↓
Launcher 蓝牙音乐卡片更新

当前代码根路径

F:\zdCode\tongli

蓝牙音乐最核心文件

文件 作用
YX_BlueTooth\src\main\java\com\yaxon\bluetooth\main\BluetoothMusicActivity.java 蓝牙音乐页面。
YX_BlueTooth\src\main\java\com\yaxon\bluetooth\viewmodel\BtMusicViewModel.java 页面状态和控制转发。
YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\manager\BtMusicControlManager.java 对外音乐控制入口。
YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\modules\BtMusicManager.java 蓝牙音乐核心业务。
YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\platform\BluetoothA2dpSinkClient.java A2DP 音频连接。
YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\platform\BluetoothAvrcpClient.java AVRCP 控制和歌曲信息。
YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\audio\BtMusicAudioManager.java 音频焦点和媒体按键。
YX_Launcher\src\main\java\com\yaxon\launcher\card\BluetoothMusicCardView.java Launcher 蓝牙音乐卡片。