Duck

1. 类图


2. 流程图


3. 代码分析

【1】PlayerFocusEnforcer声明

从上图中可知,MediaFocusControl和PlaybackActivityMonitor都实现了接口PlayerFocusEnforcer。

public interface PlayerFocusEnforcer {/*** Ducks the players associated with the "loser" focus owner (i.e. same UID). Returns true if* at least one active player was found and ducked, false otherwise.* @param winner* @param loser* @return*/public boolean duckPlayers(FocusRequester winner, FocusRequester loser, boolean forceDuck);public void unduckPlayers(FocusRequester winner);public void mutePlayersForCall(int[] usagesToMute);public void unmutePlayersForCall();
}

【2】AudioService构造函数

在AudioService中创建了PlaybackActivityMonitor对象mPlaybackMonitor,并将其作为参数,传给MediaFocusControl的构造函数

        mPlaybackMonitor =new PlaybackActivityMonitor(context, MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM]);mMediaFocusControl = new MediaFocusControl(mContext, mPlaybackMonitor);

【3】MediaFocusControl构造函数

这里将PlaybackActivityMonitor的对象赋值给mFocusEnforcer 。

    protected MediaFocusControl(Context cntxt, PlayerFocusEnforcer pfe) {mContext = cntxt;mAppOps = (AppOpsManager)mContext.getSystemService(Context.APP_OPS_SERVICE);mFocusEnforcer = pfe;}

Android Audio(七)—— AudioFocus(duck)相关推荐

  1. 【Android Audio 入门 七】声卡的创建

    [Android Audio 入门 七]声卡的创建 七.声卡的创建 7.1 Struct snd_card 7.2 声卡的建立流程 Step 1:创建一个 snd_card 实例 Step 2:创建声 ...

  2. Android Audio音频通路(七)

    android audio 生产者与消费者 简介 全面接触生产者/消费者问题是在操作系统原理中,并发性原理讨论的问题 生产者/消费者问题.最近的工作偏向音频,接着上一篇文章,用生产者,消费者模型来理解 ...

  3. Android Audio Focus的应用(requestAudioFocus)

    网址:http://blog.csdn.net/dadoneo/article/details/8252933 FROM: http://www.linuxidc.com/Linux/2012-04/ ...

  4. Android Audio 2: Audio相关术语

    https://source.android.com/devices/audio/terminology.html Audio相关的术语包含广泛运用的通用术语和Android专属的术语. 1.通用术语 ...

  5. Android底层开发之Audio HAL Android Audio Overview

    http://blog.csdn.net/kangear/article/details/44939429 Android底层开发之Audio HAL 在Android音频底层调试-基于tinyals ...

  6. android物联网开发技术架构,Android 相关七种 CPU 架构适配,android七种

    Android 相关七种 CPU 架构适配,android七种 转载请注明出处:http://blog.csdn.net/kester_/article/details/71055901 NDK 开发 ...

  7. Android Audio打开输出设备流程(十五)

    android audio 生产者与消费者 简介 全面接触生产者/消费者问题是在操作系统原理中,并发性原理讨论的问题 生产者/消费者问题.最近的工作偏向音频,接着上一篇文章,用生产者,消费者模型来理解 ...

  8. Android Audio BSP工程师 需要清楚的基本知识点

    原址 [前言] 这是我根据自己的工作经验所总结,有一定代表性,但可能不齐全.这只是个提纲. [知识点] 按照在操作系统中的层次划分,从上到下依次为: 1.Android系统分层模型.知道 APP.JN ...

  9. Android audio切换设备通道流程(二十八)

    Android audio切换设备通道流程 1.frameworks/base/media/java/android/media/AudioManager.java public void setMo ...

  10. <一>Android Audio音频框架

    目录 1.0 设备驱动 2.0  android hal层 3.0  选择设备的暗箱策略AudioPolicy 4.0  软件层面的混音,AudioFlinger 5.0 完整的对外接口 AudioS ...

最新文章

  1. postman发送post请求,用request.getParameter()获取请求参数
  2. jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项
  3. DL之U-Net:U-Net算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  4. SAP UI5 应用开发教程之十五 - 对话框和 Fragments 的使用方式
  5. 第二十二章:动画(六)
  6. 深入浅出linux三剑客之awk必杀技一例
  7. 无法将文件“ “复制到“bin\*.*”。对路径“bin\*.*”的访问被拒绝。 解决方法
  8. B站韩顺平版Linux学习笔记(很全啊!)
  9. multisim怎么设置晶体管rbe_multisim晶体管
  10. 华为USG6000防火墙基础配置简介
  11. Geohash距离估算
  12. Flutter 性能优化
  13. wireshark抓取网络数据包
  14. 如何一次将蓝牙耳机连接到多个设备
  15. mc java送win10_微软针对Windows 10的免费Minecraft赠品在Java播放器的午夜结束
  16. 达科为在创业板递交注册申请:拟募资8亿元,吴庆军父女为实控人
  17. css 居中问题的总结
  18. 斯密特正交化与QR分解
  19. 记录关于标记工具LabelIMG生成txt文件时的相关问题
  20. 【原创】常用元器件(数码管)选型之引脚和极性识别-cayden20221029

热门文章

  1. beanstalkd队列简述
  2. FPGA 学习笔记:Vivado 生成的 Bitstream bit 文件 超大的解决方法
  3. c语言确定原点建立坐标系,在GDI+中如何实现以左下角为原点的笛卡尔坐标系
  4. Modelsim下时序(功能)仿真altera IP核 程序(重要)
  5. python手机话费_Python软件测试中“电话费”问题的解决方案,python,版本,账单,题解...
  6. 软考高级 真题 2013年下半年 信息系统项目管理师 案例分析
  7. Android或者Windows Phone在HTTP调用Google Map Api时返回英文结果的解决方法
  8. only the original thread that created a view hierarchy can touch its views解决方案
  9. Golang学习(二十四)家庭记账项目
  10. 时光悄悄流逝,光阴不再使你我天真