内容简介
在QCC517x/QCC518x新的ADK下,headset工程如果有音量加减事件,只有当前有A2DP播放音乐或者HFP通话状态下才会给手机发送事件,否则程序会忽略音量加减事件。本文介绍如何在connected idle状态下向手机同步音量。
测试工具
MDE:MDE_WIN_2.8.0.37_x64
Toolkit:ADK Toolkit 1.2.16.21_x64
QACT:NULL
Bluesuite:NULL
Hardware:Qualcomm QCC3084
Software:adk-src-1-0_qtil_standard_oem_qcc518x-qcc308x,ADK-23.1-CS1-r00593.1 headset
Here we go
分析
假设音量加减是通过ui_input_volume_down和ui_input_volume_up两个事件触发的,经过查阅代码发现,在volumeService_HandleUiInput中会对这两个事件进行处理:
由上图代码可得知,在处理ui_input_volume_down和ui_input_volume_up之前,会先通过GenericSource_IsValid(source)函数去判断当前活跃的source是否有效,如果有效才会进行下一步的操作,如果无效就直接忽略了。
解决方法
所以要在手机有连接且没有音乐播放的情况下,如果要同步A2DP的音量,则需要在handle_ui_input为FALSE的情况下,对audio_source_a2dp_1和audio_source_a2dp_2进行音量加减操作即可。
所以在volumeService_HandleUiInput函数的末尾添加以下内容即可:
else
{
if(ui_input ==ui_input_volume_up || ui_input == ui_input_volume_down)
{
bdaddr* bd_addr = NULL;
unsigned num_addresses= 0;
unsigned charnum_a2dp_connected = 0;
if(BtDevice_GetAllHandsetBdAddr(&bd_addr, &num_addresses))
{
bool isConnected =FALSE;
for(unsigned chari=0; i
{
isConnected =FALSE;
avInstanceTaskData *theInst =appAvInstanceFindFromBdAddr(&bd_addr[i]);
isConnected =theInst && appA2dpIsConnected(theInst);
if(isConnected== TRUE)
{
num_a2dp_connected++;
}
}
free(bd_addr);
bd_addr = NULL;
}
if(num_a2dp_connected>= 1)
{
source.type =source_type_audio;
source.u.audio =audio_source_a2dp_1;
step_size =VolumeService_GetUiStepSize(AudioSources_GetVolume(source.u.audio).config);
if(ui_input ==ui_input_volume_down)
{
step_size =-step_size;
}
VolumeService_ChangeAudioSourceVolume(source.u.audio, step_size);
}
if(num_a2dp_connected>= 2)
{
source.type =source_type_audio;
source.u.audio =audio_source_a2dp_2;
step_size =VolumeService_GetUiStepSize(AudioSources_GetVolume(source.u.audio).config);
if(ui_input ==ui_input_volume_down)
{
step_size =-step_size;
}
VolumeService_ChangeAudioSourceVolume(source.u.audio, step_size);
}
}
}
增加以上代码后同时连接两个手机测试,发现在当前没有audio输出的情况下,如果操作headset的音量加减按键,就会同时向两个手机发送音量加减指令了,如果当前有音乐播放,则继续按照原始程序进行操作。
审核编辑:汤梓红
-
手机
+关注
关注
35文章
6864浏览量
157509 -
函数
+关注
关注
3文章
4322浏览量
62510 -
测试工具
+关注
关注
0文章
53浏览量
11916 -
ADK
+关注
关注
0文章
7浏览量
4974
原文标题:如何让QCC308x的headset工程实现在没有音乐播放情况下可以向手机上报音量加减的功能
文章出处:【微信号:TalkBT,微信公众号:蓝牙】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论