Android请求音频焦点
申请音频焦点
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请求音频焦点相关推荐
- android汽车音频焦点方案,管理音频焦点 | Android 开发者 | Android Developers
两个或两个以上的 Android 应用可同时向同一输出流播放音频.系统会将所有音频流混合在一起.虽然这是一项出色的技术,但却会给用户带来很大的困扰.为了避免所有音乐应用同时播放,Android 引入了 ...
- Android官方开发文档Training系列课程中文版:管理音频播放之管理音频焦点
原文地址:http://android.xsoftlab.net/training/managing-audio/audio-focus.html 因为可能会存在多个APP播放音频,所以考虑它们之间的 ...
- Android音频焦点
因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放 音乐,Android 系统使用音频焦点来进行统一管理,即只有获得了音频焦点的应用程序才可以播放音 ...
- android音频焦点Audio Focus
为了便于理解,我们以android的8.0以前的版本为例,8.0以后有一定改动,但是基本思路一样. 关于管理音频焦点(8.0以前和更高版本)的官方文档:https://developer.androi ...
- Android音频焦点及混音策略
1.前言 1.1 音频焦点官方解读 两个或两个以上的 Android 应用可同时向同一输出流播放音频.系统会将所有音频流混合在一起.虽然这是一项出色的技术,但却会给用户带来很大的困扰.为了避免所有音乐 ...
- Android 音频焦点处理
刚开始的时候,认为在智能机中,每个 APP 都是各自管各自的,媒体播放也是这样子的:然而对比同类产品,发现同类产品可以放到播放自如,体验很好,通过对比研究,根源就在于音频焦点处理上. 一.引言 在功能 ...
- Android音频焦点处理
概要 Android系统允许多个应用同时播放音频,这种特性有利有弊.例如当我们正在听音乐的时候突然点开了一个视频,如果我们发现音乐的声音和视频的的声音混合了在一起,这显然让我们非常不爽.而如果我们在播 ...
- Android音乐编程:管理音频焦点
转自:http://mobile.51cto.com/android-309321.htm 因为系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐, ...
- Android 8.0 后使用AudioFocus音频焦点处理音频抢占问题
今天写了一个关于播放audio的简单demo,发现程序无法抢占其他音频,具体表现在当有其他播放器在播放audio的时候,如果demo播放audio的话,那么会有两个audio同时播放:而且其他播放器也 ...
最新文章
- 零基础参加java培训主要学什么
- java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...
- http端口_PhpStorm 修改默认端口号63342
- 跟我一起学docker(15)--监控日志和日志管理
- 啊哈c语言逻辑的挑战课后题答案,啊哈C语言!逻辑的挑战(修订版) (啊哈磊著) 完整pdf高清版...
- WIN10系统右下角网络连接图标消失解决方案
- ThinkPHP微信小说小程序源码-自带采集带安装教程
- Visual Leak Detector内存泄漏检测工具,vld使用及原理
- android stl 3d模型,3D文件转化为STL文件 - 魔猴网
- Windows服务优化(整理篇)
- 大数据面试3分钟自我介绍_大数据面试要注意哪些方面?大数据面试准备三大攻略...
- java卸载(java卸载 windows installer)
- Latex 编译报错: Misplaced omit.
- java函数式接口意义与场景
- 实验四+001+陈定国
- 轻量化中文版linux,MX Linux:一款专注于简洁性的中等体量发行版 | Linux 中国
- AVS-CABAC算法原理简介2
- ps闪闪发光的字 教程+自我练习
- 1.DevOps简介
- 北京大学 计算机 排名2015年,北京大学计算机专业怎么样(最新北京大学计算机专业排名)...