Android P 按键音分析

触摸按键音流程

前面简要的流程我们就不分析了,画了一下简要的流程图,由于我分析的源码具有特殊性,分为两条线路来看

第一部分

客制化实现按键音部分,也就是意味着加载资源和播放按键音是单独实现的。实际上是走外部音源调音的这条线路
在这里插入图片描述

第二部分

原生的按键音流程,后面会挑一些比较关键的流程分析记录一下
在这里插入图片描述

AudioService.java

我们看主要看下AudioService.java中的的流程

    /** @see AudioManager#playSoundEffect(int, float) */
    public void playSoundEffectVolume(int effectType, float volume) {
        if (mUseDspEffect) {
            final IAudioPolicyCallback extVolCtlr;
            synchronized (mExtVolumeControllerLock) {
                extVolCtlr = mExtVolumeController;
            }
            if(extVolCtlr != null) {
            	//MSG_NOTIFY_VOL_EVENT会发送到外部路由策略端(该部分实际是用于调节音量的流程)
                sendMsg(mAudioHandler, MSG_NOTIFY_VOL_EVENT, SENDMSG_QUEUE,
                        AudioManager.ADJUST_PLAY_EFFECT + effectType, 0 /*ignored*/,
                        extVolCtlr, 0 /*delay*/);
            }else{d
                Log.e(TAG, "AudioService playSoundEffectVolume failed for no ext Volume Controller found!");
            }
            return;
        }

        // do not try to play the sound effect if the system stream is muted
        if (isStreamMutedByRingerOrZenMode(STREAM_SYSTEM)) {
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值