android分析通话中的音频,Android10.0(Q) 实现通话中播放音乐/通话背景音(答录机/魔音功能)...

前言

这个功能大体意思类似机器人交互的效果,一般多应用到客服接听场景中,电话接通自动播放一段录音给

对方听,根据选项操作录音解析等完成一整个流程。这里面电话接通播放声音给对方听普通应用是做不到的,

谷歌默认的策略,当电话响铃或接通后,电话的音频焦点使用优先级是最高的,其它应用是无法抢占的。

但我们有源码啊,可以跳过这个地方,但是尝试后你会发现依旧不行。因为这还关系到 audio 驱动部分的上下行。

修改方案

frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java

vendor/mediatek/proprietary/hardware/audio/common/speech_driver/SpeechPcmMixerBGSPlayer.cpp

vendor/mediatek/proprietary/hardware/audio/common/speech_driver/SpeechPcmMixerTelephonyTx.cpp

vendor/mediatek/proprietary/hardware/audio/mt6735/include/AudioALSAVolumeController.h

vendor/mediatek/proprietary/hardware/audio/mt6735/include/AudioMTKGainController.h

frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java

canReassignAudioFocus 直接放回 true,其实最终发现改不改这里无所谓,主要是 audio 的上下行

private boolean canReassignAudioFocus() {

// focus requests are rejected during a phone call or when the phone is ringing

// this is equivalent to IN_VOICE_COMM_FOCUS_ID having the focus

/*if (!mFocusStack.isEmpty() && isLockedFocusOwner(mFocusStack.peek())) {

return false;

}*/

return true;

}

audio driver 部分需要修改 mPcmMixerDlGain 和 mPcmMixerUlGain 默认初始值

其中 mPcmMixerDlGain 表示下行 gain 值,影响的是本端听到的声音大小

mPcmMixerUlGain 表示上行 gain 值,影响的是对方听到的声音大小,默认值是 0x00,<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值