申请音频焦点

private var mAudioFocusRequest: AudioFocusRequest? = nullprivate fun requestAudioFocus() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {if (mAudioFocusRequest == null) {val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build()mAudioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN).setAudioAttributes(attr).setOnAudioFocusChangeListener(this).build()}mAudioFocusRequest?.apply {(App.instance.getSystemService(Context.AUDIO_SERVICE) as AudioManager).let { manager ->manager.requestAudioFocus(this).let {when (it) {AudioManager.AUDIOFOCUS_REQUEST_FAILED -> {// 申请焦点失败}AudioManager.AUDIOFOCUS_REQUEST_GRANTED -> {// 申请成功}AudioManager.AUDIOFOCUS_REQUEST_DELAYED -> {// 稍后获取}}}}}} else {(App.instance.getSystemService(Context.AUDIO_SERVICE) as AudioManager).requestAudioFocus(this,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN)}}

放弃音频焦点

private var mAudioFocusRequest: AudioFocusRequest? = nullprivate fun abandonAudioFocus() {mAudioFocusRequest?.apply {(App.instance.getSystemService(Context.AUDIO_SERVICE) as AudioManager).abandonAudioFocusRequest(this)}mAudioFocusRequest = null}

音频焦点变化监听

override fun onAudioFocusChange(focusChange: Int) {// 拍摄视频:>-2>1when (focusChange) {AudioManager.AUDIOFOCUS_GAIN -> {// 长时间持有焦点}AudioManager.AUDIOFOCUS_GAIN_TRANSIENT -> {// 暂时焦点}AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK -> {// 共享焦点,其他音频降低}AudioManager.AUDIOFOCUS_LOSS -> {// 长时间失去焦点}AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {// 暂时失去焦点}}}

Android请求音频焦点相关推荐

  1. android汽车音频焦点方案,管理音频焦点  |  Android 开发者  |  Android Developers

    两个或两个以上的 Android 应用可同时向同一输出流播放音频.系统会将所有音频流混合在一起.虽然这是一项出色的技术,但却会给用户带来很大的困扰.为了避免所有音乐应用同时播放,Android 引入了 ...

  2. Android官方开发文档Training系列课程中文版:管理音频播放之管理音频焦点

    原文地址:http://android.xsoftlab.net/training/managing-audio/audio-focus.html 因为可能会存在多个APP播放音频,所以考虑它们之间的 ...

  3. Android音频焦点

    因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放 音乐,Android 系统使用音频焦点来进行统一管理,即只有获得了音频焦点的应用程序才可以播放音 ...

  4. android音频焦点Audio Focus

    为了便于理解,我们以android的8.0以前的版本为例,8.0以后有一定改动,但是基本思路一样. 关于管理音频焦点(8.0以前和更高版本)的官方文档:https://developer.androi ...

  5. Android音频焦点及混音策略

    1.前言 1.1 音频焦点官方解读 两个或两个以上的 Android 应用可同时向同一输出流播放音频.系统会将所有音频流混合在一起.虽然这是一项出色的技术,但却会给用户带来很大的困扰.为了避免所有音乐 ...

  6. Android 音频焦点处理

    刚开始的时候,认为在智能机中,每个 APP 都是各自管各自的,媒体播放也是这样子的:然而对比同类产品,发现同类产品可以放到播放自如,体验很好,通过对比研究,根源就在于音频焦点处理上. 一.引言 在功能 ...

  7. Android音频焦点处理

    概要 Android系统允许多个应用同时播放音频,这种特性有利有弊.例如当我们正在听音乐的时候突然点开了一个视频,如果我们发现音乐的声音和视频的的声音混合了在一起,这显然让我们非常不爽.而如果我们在播 ...

  8. Android音乐编程:管理音频焦点

    转自:http://mobile.51cto.com/android-309321.htm 因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐, ...

  9. Android 8.0 后使用AudioFocus音频焦点处理音频抢占问题

    今天写了一个关于播放audio的简单demo,发现程序无法抢占其他音频,具体表现在当有其他播放器在播放audio的时候,如果demo播放audio的话,那么会有两个audio同时播放:而且其他播放器也 ...

最新文章

  1. 零基础参加java培训主要学什么
  2. java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...
  3. http端口_PhpStorm 修改默认端口号63342
  4. 跟我一起学docker(15)--监控日志和日志管理
  5. 啊哈c语言逻辑的挑战课后题答案,啊哈C语言!逻辑的挑战(修订版) (啊哈磊著) 完整pdf高清版...
  6. WIN10系统右下角网络连接图标消失解决方案
  7. ThinkPHP微信小说小程序源码-自带采集带安装教程
  8. Visual Leak Detector内存泄漏检测工具,vld使用及原理
  9. android stl 3d模型,3D文件转化为STL文件 - 魔猴网
  10. Windows服务优化(整理篇)
  11. 大数据面试3分钟自我介绍_大数据面试要注意哪些方面?大数据面试准备三大攻略...
  12. java卸载(java卸载 windows installer)
  13. Latex 编译报错: Misplaced omit.
  14. java函数式接口意义与场景
  15. 实验四+001+陈定国
  16. 轻量化中文版linux,MX Linux:一款专注于简洁性的中等体量发行版 | Linux 中国
  17. AVS-CABAC算法原理简介2
  18. ps闪闪发光的字 教程+自我练习
  19. 1.DevOps简介
  20. 北京大学 计算机 排名2015年,北京大学计算机专业怎么样(最新北京大学计算机专业排名)...

热门文章

  1. 当你的兴趣成为了职业
  2. java excel导入太慢_[Java] 高效快速导入EXCEL数据
  3. Shell脚本之循环语句——for循环、while循环、until循环
  4. 8个优秀的前端UI框架
  5. 零基础数据挖掘入门系列(四) - 特征工程
  6. 【JAVA学习笔记】17 Set集合
  7. 关于紫光a5扫描仪的安装
  8. Redis底层多路复用
  9. 看乔布斯回应iPhone4“天线门”事件
  10. Java工程师入职——配置环境及安装开发工具