Android 音频管理器AudioManager
音频管理器AudioManager,通过它可以管理android系统的音量或直接让系统静音,依旧是通过调用getSystemService()方法获取音频管理器AudioManager对象,获取到该对象之后就可以调用它相应的方法来管理系统的音频,首先先热热身,大致了解一下AudioFocus,为什么先说这个呢?因为今天在项目中碰到了这个问题,问题情境描述:手机首先开启一个音乐进入后台播放,然后进入闹钟模块,设置一个闹钟,并为闹钟选择一个铃音,当闹钟时间到时弹出闹钟响应界面同时播放铃声并振动,并要求后台音乐同时暂停播放,等待闹钟铃音响应结束之后,后台音乐又自动重新进入播放状态,描述完毕。
以上情境涉及到两个问题:
1.闹钟时间到并启动响应界面,如何暂停后台正在播放的音乐,并播放闹钟的铃音?
2.闹钟铃音响应结束之后,如何让后台暂停的音乐重新恢复播放状态?
解决以上两个问题的关键就是AudioManager对象的AudioFocus这个音频焦点,首先分析以上问题的第一步:
暂停后台正在播放的音乐并启动播放闹钟的铃音,首先就需要在闹钟模块中通过AudioManager的requestAudioFocus ()方法获取到音频焦点(AudioFocus),获取到音频焦点(AudioFocus)之后,后台音乐就自动进入暂停状态【另一种情况是闹钟铃音和后台同时播放,那么此时可以不对焦点进行操作,只不过此时就听到两种声音,当然在实际情况中就不应该这么做了,用户体验是很重要的,两个应用同时播放声音,那么听起来就很混乱,这是很糟糕的,不过另外一点,如果闹钟铃音设置为静音,那么用户可能希望即使闹钟启动了也并不想中断后台音乐,此时就可以不对音频焦点进行处理,后台音乐就不会暂停】。
再分析以上问题的第二步:
闹钟铃音响应结束之后,后台暂停的音乐重新恢复播放状态,此时只需要调用abandonAudioFocus ()方法释放音频焦点(AudioFocus)就可以了,请求音频焦点requestAudioFocus ()和释放音频焦点abandonAudioFocus ()方法的参数涉及到了AudioManager.OnAudioFocusChangeListener这个监听器,此处可以先放一下,后面将会结合一个例子进行详细说明的,本次想说的就是这个AudioFocus,因为它很重要,后期会结合实例说明一下,好了今天就到这了,该洗洗睡了!!
Android 音频管理器AudioManager的更多相关文章
- AudioManager音频管理器
AudioManager音频管理器提供了如下几种常用方法来控制手机音频: 1.adjustStreamVolume(int StreamType,int direction,int flgs):调整手 ...
- WIN10REALTEL高清音频管理器如何调音?调音无效怎么办?
从win7升级到win10,发现realtel高清音频管理器不能调节高级音响效果了,即使设置也没用. 经过研究后发现是驱动 问题,不是驱动 没有安装,而是可能 没有安装完整,于是下载了驱动精灵,重新安 ...
- [翻译] SoundManager 音频管理器
SoundManager 音频管理器 https://github.com/nicklockwood/SoundManager Purpose SoundManager is a simple cla ...
- 电脑没有声音,显示“未插入耳机或扬声器”,检测不到Realtek高清晰音频管理器
2018-7-16,电脑彻夜未关,早上发现已经死机了.关机重启之后,就发现没有声音了,提示“未插入耳机或扬声器”,并且检测不到Realtek高清晰音频管理器,只能检查到显卡音频输出.首先,音箱在其他电 ...
- Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面
场景 Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片
场景 Android布局管理器-使用LinearLayout实现简单的登录窗口布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...
- Android布局管理器-使用LinearLayout实现简单的登录窗口布局
场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...
- 故障解决 | win10没声音及找不到Realtek高清音频管理器
重装 win10 系统后,电脑没声音,更新驱动以及万不得已下载驱动精灵都没有解决. 后来发现在“硬件和声音”中没有Realtek高清音频管理器,之后找到解决办法如下: 1. 找到Realtek高清音频 ...
- 音频管理器(AudioManager)
MainActivity.java package com.wwj.serviceandboardcast; import android.app.Activity; import android ...
随机推荐
- 全球最快的JS模板引擎:tppl
废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二 ...
- 快速构建Windows 8风格应用37-常见发布注意事项
原文:快速构建Windows 8风格应用37-常见发布注意事项 引言 通常我们发布Windows Store应用失败后,会返回一些错误需要我们去修改.我之前在给学生做培训的时候发现大部分同学应用被打回 ...
- HBuilder js 自定义代码块
=begin 本文档是HBuilder预置的js代码块的文件.注意不要把其他语言的设置放到js里来. 如果用户修改此文档,HBuilder升级后会覆盖用户的修改,建议进入菜单 工具→扩展代码块 扩展相 ...
- C# 解析bt种子
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...
- Android的FrameLayout使用要注意的问题
帧布局FrameLayout在Android的五大布局中是最简单的布局方式,在需要布局中的控件有重叠的情况下才使用. 今天Shamoo使用FrameLayout的时候,发现布局里面的控件设置layou ...
- TodoList开发笔记 – PartⅠ
做了一年多的桌面软件,最近开始转向Web方面的开发,既然比较熟悉Net那么首当其冲就是学习ASP.Net,以及HTML.CSS.Javascript. 为了检验这个把星期来的学习成果,着手做了一个To ...
- gradle测试与线上打包
首先,第一反应理所当然的是profile : <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- 基于嵌入式OS的任务设计-----任务划分
在<前后台系统VS嵌入式OS,何时该上OS?>一文中介绍了何时应该将OS应用于嵌入式设计中,本文将介绍基于OS的任务设计,一般来说,应用程序设计包括两个方面,一个是业务逻辑的设计,另一个是 ...
- 如果gen.lib.rus.ec这个电子书下载站上不去了,那就用这个吧
如果著名的gen.lib.rus.ec这个电子书下载站上不去了,那就用这个吧: 万千合集站 http://www.hejizhan.com/ 里面除了镜像索引了gen.lib.rus.ec上的所有英文 ...
- 解决Github使用Fastly CDN而导致不能加载网页的方法
Github现在基本属于“安全”网站,但 Github使用fastly.net的CDN服务后,其网站在国内经常不能正常加载网页.github.global.ssl.fastly.net的亚洲IP一般为 ...