first commit
This commit is contained in:
commit
669f49b1d6
342 files changed
+320811
No files matched your search
@@ -0,0 +1,84 @@
|
||||
# 蓝牙音乐模块流程与开发指南
|
||||
|
||||
> 这是入口文档。
|
||||
> 本次排版已去掉 Mermaid 图,改为“纯文本流程块 + 编号步骤表 + 拆分文档”,适合 Obsidian 直接阅读。
|
||||
|
||||
## 推荐阅读顺序
|
||||
|
||||
| 顺序 | 文档 | 先看什么 |
|
||||
|---|---|---|
|
||||
| 1 | [[00_总览_一页看懂]] | 先建立模块整体印象。 |
|
||||
| 2 | [[01_启动初始化流程]] | 看蓝牙音乐 SDK 是怎么启动的。 |
|
||||
| 3 | [[02_A2DP连接与断开流程]] | 看“有没有声音通道”怎么判断。 |
|
||||
| 4 | [[03_AVRCP歌曲信息与播放状态流程]] | 看歌名、歌手、播放状态从哪里来。 |
|
||||
| 5 | [[04_播放控制与音频焦点流程]] | 看播放、暂停、切歌、焦点抢占。 |
|
||||
| 6 | [[05_Launcher卡片流程]] | 看桌面卡片怎么显示和控制蓝牙音乐。 |
|
||||
| 7 | [[06_开发入口_风险点_测试清单]] | 开发前定位文件、风险点和测试项。 |
|
||||
|
||||
## 最短主链路
|
||||
|
||||
### 用户点击播放
|
||||
|
||||
```text
|
||||
用户
|
||||
↓
|
||||
BluetoothMusicActivity.onClick()
|
||||
↓
|
||||
BtMusicViewModel.playBtMusic()
|
||||
↓
|
||||
BtMusicControlManager.playBtMusic()
|
||||
↓
|
||||
BtMusicManager.requestFocus()
|
||||
↓
|
||||
BtMusicAudioManager.requestAudioFocus()
|
||||
↓
|
||||
BtMusicManager.playBtMusic()
|
||||
↓
|
||||
BluetoothAvrcpClient.play()
|
||||
↓
|
||||
MediaControllerCompat.TransportControls.play()
|
||||
↓
|
||||
手机音乐 App 开始播放
|
||||
```
|
||||
|
||||
### 手机切歌后刷新页面
|
||||
|
||||
```text
|
||||
手机音乐 App 切歌
|
||||
↓
|
||||
Android 蓝牙栈 AVRCP 元数据变化
|
||||
↓
|
||||
MediaBrowserClient.onMetadataChanged()
|
||||
↓
|
||||
BluetoothAvrcpClient.onMetadataChanged()
|
||||
↓
|
||||
BtMusicManager 解析歌曲信息
|
||||
↓
|
||||
BtMusicViewModel.mLiveDataMusicInfo
|
||||
↓
|
||||
BluetoothMusicActivity 更新歌名/歌手/封面/时长
|
||||
↓
|
||||
BtInfoPushManager.sendMusicInfoToLauncher()
|
||||
↓
|
||||
Launcher 蓝牙音乐卡片更新
|
||||
```
|
||||
|
||||
## 当前代码根路径
|
||||
|
||||
```text
|
||||
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 蓝牙音乐卡片。 |
|
||||
|
||||
Reference in new issue
Block a user