【Bluedroid】A2DP SINK播放流程源码分析
在Bluedroid协议栈中,A2DP(Advanced Audio Distribution Profile)SINK播放流程是一个复杂但有序的过程,它涉及多个层次和组件的交互。
一、概述
1.1. 初始化流程
在A2DP SINK播放之前,系统需要进行一系列初始化操作,以确保A2DP SINK服务能够正确运行。这些操作包括启动A2DP SINK服务、注册回调函数、初始化蓝牙接口等。
1. 启动A2DP SINK服务:
在Android系统中,A2DP SINK服务通常由A2dpSinkService类来启动和管理。这个服务在系统启动时或用户请求时启动。
-  启动服务:当系统启动或用户请求启动A2DP SINK服务时,系统会调用 A2dpSinkService类的start()方法。这个方法会负责创建并启动A2DP SINK服务的相关组件。
-  创建状态机:在 start()方法中,会调用A2dpSinkStateMachine.make()方法来创建一个A2DP SINK状态机实例。这个状态机用于管理A2DP SINK服务的各种状态转换,如连接状态、播放状态等。
