Android5.1 之audiofocus学习总结

本文介绍了Android 5.1中audiofocus的概念,强调了其在管理音频资源竞争中的作用。详细阐述了requestAudioFocus的流程,包括权限检查、客户端状态判断、焦点变更通知等关键步骤,并概述了与音频焦点栈(Stack)相关的操作,如pop、push、peek和search方法。
摘要由CSDN通过智能技术生成

 Overview

   在http://blog.sina.com.cn/s/blog_645b74b90101e74f.html中(借用人家的哈。)非常清晰的阐述了AudioFocus这个stack的数据结构,阐述了requestAudioFocus的三个参数的不同。我这篇主要介绍request的流程和比较重要方法。
    android中,为了避免多个声音同时出现造成极不好的用户体验,从android2.2开始引入audiofocus的机制来管理对Audio资源的竞争的管理与协调。
    但是其实这这是个游戏规则,与如何播放的声音没关系,不能强制要求所有APP都遵守,所以仍然有很多不遵守这种游戏规则的软件。

Workflow



   一个app request音频焦点的流程如上所示。先判断当前request的client端是否满足以下的条件,满足,则放入栈中,并且调用propagateFocusLossFromGain_syncAf()通知被压下去的client。<br/>
   整个流程中比较重要,有较多逻辑判断的部分集中在MediaFocusControl中的requestAudioFocus()这个方法,主要做了一下几个事:<br/>
    1.检查是否拥有权限:"android.Manifest.permission.MODIFY_PHONE_STATE",不拥有返回false&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值