☰
蓝牙中间件 -- 识别按下手机端音乐App的播放/暂停按钮的策略
2026/10/24 5:30:41 网站建设 项目流程

问题视频:

问题视频 音乐暂停状态,触发一级报警音后,蓝牙音乐自动播放

正确结果应当是:

RVC信号来之前,用户在手机音乐App按下的暂停,视为“用户按下的暂停”,RVC信号来之后,不应当播放视频。

发生原因:

RVC信号发生后,中间件丢失焦点通知P层,P层(App层)也对自身管控的“是否用户按下的暂停”标志位进行变更。也影响中间件自身管控的“是否用户按下的暂停”标志位。所以RVC信号结束后,中间件获得焦点,这个标志位是不确定的状态。如果是认为“用户按下暂停”,则不播放视频,如果认为不是“用户按下暂停”,则播放视频。

困难点:

前任员工不知道是否用户下达了蓝牙音乐暂停的命令, A2DP 协议没有提供这样的协议,只提供蓝牙音乐推流和停止推流的状态。

只从状态,无法直接得出是否是命令引起的,因为车机端也可以请求暂停,请求暂停的原因,可能是用户按下车机端蓝牙音乐App暂停键,也可能是RVC信号触发导致蓝牙中间件自动请求暂停(这就不能视为人为按下的了),但是蓝牙状态的回复只有一个“停止推流的状态”

解决手段:

1、取消P层自身管控的“是否用户按下的暂停”标志位,统一由中间件管理,每次P层使用前跟中间件通信,去获取这个标志位。

2、虽然协议只提供状态,但是车机端可能有请求命令。

如果没有车机端的请求,协议变更了状态,从推流变成停止推流,则认为是用户按下了暂停;如果手机端有电话过来,这种场景停止推流,可以根据HFP协议和A2DP协议综合判断,不视为用户按下暂停。

如果有车机端的请求,协议变更了状态,从推流变成停止推流,分两种情况:

①有RVC信号抢了焦点,不认为是用户按下了暂停
②如果是切源(切到Radio)或者是P层按下暂停,认为是用户按下了暂停。

①②均可以根据 注册给焦点管理类的onLoss回调去判断当前所在源是哪个。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询