连续签到天数:3天 | 签到总天数:215天 | 签到总奖励:5557金币 |
|
马上注册,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
×
描述
• 手机播放音乐来电,音乐会挂起,此时如果用
户强制在手机上重新播放音乐,电话结束后双
耳无声。
在ADK R00299.1问题已经解决
分析
• 呼叫结束后,A2DP kymera没有按预期启动,
因为在这种情况下,音频路由器没有按预期路
由A2DP。
方案
当问题发生时,更新音频路由器重新路由
器A2DP
代码改动如下: (r265.1)
- in a2dp_profile.c
- ++#include "earbud_sm.h"
- ++#include "kymera_private.h"
- ++#include "audio_sources.h"
- ++#include "audio_router.h"
- ++void RestartA2DPAfterIncomingcallEnd(void)
- ++{
- ++ if(appSmIsPrimary()&&(SmGetTaskData()->state == APP_STATE_IN_EAR_BUSY)&&
- (appKymeraGetState()==KYMERA_STATE_IDLE))
- ++ {
- ++ DEBUG_LOG("Prepare to restart A2DP" );
- ++ if(AudioSources_GetSourceContext(audio_source_a2dp_1) ==
- context_audio_is_playing)
- ++ {
- ++ avInstanceTaskData *av_instance =
- Av_GetInstanceForHandsetSource(audio_source_a2dp_1);
- ++ a2dpSetSyncFlag(av_instance, A2DP_SYNC_PREPARED);
- ++ AudioRouter_Update();
- ++ DEBUG_LOG("restart audio_source_a2dp_1");
- ++ }
- ++ else if(AudioSources_GetSourceContext(audio_source_a2dp_2) ==
- context_audio_is_playing)
- ++ {
- ++ avInstanceTaskData *av_instance = Av_GetInstanceForHandsetSource(
- ++audio_source_a2dp_2);
- ++ a2dpSetSyncFlag(av_instance, A2DP_SYNC_PREPARED);
- ++ AudioRouter_Update();
- ++ DEBUG_LOG("restart audio_source_a2dp_2 ");
- ++ }
- ++ }
- ++}
- In in file hfp_profile.c
- static void hfpProfile_HandleHfpCallStateInd(const HFP_CALL_STATE_IND_T *ind)
- {
- .......
- if (hfp_instance_state != state)
- appHfpSetState(instance, state);
- ++ if(ind->call_state == hfp_call_state_idle)
- ++ {
- ++ DEBUG_LOG("decide whether to re start A2DP while incoming call End");
- ++ RestartA2DPAfterIncomingcallEnd();
- }
- .........
- }
复制代码
|
|