位置: 编程技术 - 正文

音频焦点 (audio focus)(二)(音频焦点图广告)

编辑:rootadmin

推荐整理分享音频焦点 (audio focus)(二)(音频焦点图广告),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:音频焦点 获取失败怎么弄,音频焦点 获取失败怎么弄,音频焦点获取失败,音频焦点问题,音频焦点管理,音频焦点管理,音频焦点获取失败,音频焦点获取失败,内容如对您有帮助,希望把文章链接给更多的朋友!

音频焦点 (audio focus)(二)(音频焦点图广告)

转载自: (audio focus)?

android系统是一个多任务操作系统,因此同一时刻允许许多任务同时工作。但是这对音频类应用来说是个挑战,因为如果多个音频同时播放的话,很多情况下用户体验会相当的差!比如听音乐时,来了个电话,这时你的耳机里就是电话和音乐共同工作,绝对是个悲剧! 为了解决这个问题从android2.2开始引入audio focus的概念。当你需要播放音乐或者发送一个通知的时候,你可以去要求获得音频焦点。一旦获得,就可以自由的使用音频输出设备。但是同时它也在时时刻刻的监听着音频焦点的变化。当音频焦点变化时,你需要去合适的处理你的音频输出。音频焦点工作的示例:第一步首先你要获得一个音频管理服务AudioManager mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);这个通常在service的oncreate中完成。第二步然后在合适的地方,比如播放音乐的按钮中放置获得音频焦点的代码 mAudioManager.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);requestAudioFocus方法可以获得音频焦点,其有三个参数,解释如下:第一个参数 OnAudioFocusChangeListener:就是音频焦点变化时的监听器,这是音频焦点控制的重点。第二个参数streamType:焦点获得之后的数据传输类型,这里是AudioManager.STREAM_MUSIC第三个参数durationHint :告知系统,你要求获得音频焦点的用途,系统根据你所要求的类型来给其他监听者发出相应的焦点控制参数。有三种可选 AUDIOFOCUS_GAIN_TRANSIENT:只是短暂获得,一会就释放焦点,比如你只是想发个notification时用下一秒不到的铃声。 AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:只是背景获得,之前的音频焦点使用者无需释放焦点给我,我将与其共同使用。 AUDIOFOCUS_GAIN:我要求完全获得焦点,其他人需要释放焦点。比如我要播放音乐了,这时就要抢占整个音频焦点。第三步实现音频焦点监听器OnAudioFocusChangeListener,这个监听器会根据当前音频焦点的变化,调用onAudioFocusChange(int focusChange)方法,focusChange主要有以下四种参数: AUDIOFOCUS_AGIN:你已经完全获得了音频焦点 AUDIOFOCUS_LOSS:你会长时间的失去焦点,所以不要指望在短时间内能获得。请结束自己的相关音频工作并做好收尾工作。比如另外一个音乐播放器开始播放音乐了(前提是这个另外的音乐播放器他也实现了音频焦点的控制,baidu音乐,天天静听很遗憾的就没有实现,所以他们两个是可以跟别的播放器同时播放的) AUDIOFOCUS_LOSS_TRANSIENT:你会短暂的失去音频焦点,你可以暂停音乐,但不要释放资源,因为你一会就可以夺回焦点并继续使用 AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:你的焦点会短暂失去,但是你可以与新的使用者共同使用音频焦点 具体示例如下: private OnAudioFocusChangeListener mAudioFocusListener = new OnAudioFocusChangeListener(){ public void onAudioFocusChange(int focusChange) { switch(focusChange){ case AudioManager.AUDIOFOCUS_LOSS: if(isPlaying()){ //we do not need get focus back in this situation //会长时间失去,所以告知下面的判断,获得焦点后不要自动播放 mPausedByTransientLossOfFocus = false; pause();//因为会长时间失去,所以直接暂停 } break; case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: if(isPlaying()){ //短暂失去焦点,先暂停。同时将标志位置成重新获得焦点后就开始播放 mPausedByTransientLossOfFocus = true; pause(); } break; case AudioManager.AUDIOFOCUS_GAIN: //重新获得焦点,且符合播放条件,开始播放 if(!isPlaying()&&mPausedByTransientLossOfFocus){ mPausedByTransientLossOfFocus = false; resume(); } break; } }};最后在适当的时候注销掉这个监听器比如在onDestroy()中 mAudioManager.abandonAudioFocus(mAudioFocusListener);到此整个音频焦点的控制就完成了 讲一个自己的故事,mPausedByTransientLossOfFocus 这个参数一开始没理解有什么作用,就没写。直到发现,我的音乐播放器在我已经手动暂停的情况下,总是在我打完电话后自动播放音乐,才发现他的作用。打完电话,手机就这么一路唱着歌在我的口袋里二&#;呵呵的欢乐着。自己还不知道,等再要用手机的时候发现电都被搞掉了不少,且无数人侧目看我是一个怎样的二货喜欢外放音乐.....庆幸手机里没有凤凰传奇的歌曲。 其实这个参数的作用就是可以让播放器仅仅在短暂失去音频焦点并重新获得后才开始播放音乐。而不是任何时候重新获得焦点都开始播放。

如何修改android系统字体大小 修改字体大小的方法是运用到一个ActivityManagerNative类首先先在代码宣告privateConfigurationmconfig=newConfiguration();并在代码中设置要改变字体大小的值mconfig.font

Android 颜色值和色阶对应表 图片直接从google官网copy过来的,看不清楚的把网页放大一些看。官网关于Android颜色介绍怎么定义颜色:hevaluealwaysbeginswithapound(#)characterandthenfollowedbytheAl

Android 内存分析 公司项目要对程序的内存和CPU占用分析,总结一下。如果有些命令执行不成功,请先获取root权限。主要用到的命令为三个:adbshelldumpsysmeminfocom.xiaohu.test

标签: 音频焦点图广告

本文链接地址:https://www.jiuchutong.com/biancheng/376566.html 转载请保留说明!

上一篇:Android基础入门教程——1.8 工程相关解析(各种文件,资源访问)(android新手入门)

下一篇:如何修改android系统字体大小(如何修改android studio的下载路径)

  • 契税是什么样的单子
  • 农产品抵扣怎么算
  • 临时税务登记的小规模纳税人 个人所得税如何申报
  • 备用金要用发票做账吗
  • 水电费专用发票税率
  • 企业所得税必须计提吗?什么时候计提?
  • 现金流量表的期末数与资产负债表的货币资金吗
  • 发票查询发票代码有误
  • 非盈利组织的银行是什么
  • 新政府会计准则2019
  • 无形资产资本化加计扣除可抵扣暂时性差异
  • 业务招待费超支原因怎么写
  • 知道销项税怎么算进项
  • 客户往来对账单
  • 劳务关系需要缴社保吗?
  • 节税租赁和销售的区别
  • 其他应收款余额在贷方,怎么填资产负债表
  • 金融服务利息
  • 发票退回原因
  • 软件维护费可以出维护人员工资吗?
  • 收社团费用怎么说
  • 以公司名义买货车可以抵税吗
  • 退回多交企业所得税分录
  • 考勤扣款是税前还是税后
  • 资源税改革对政治的影响
  • 如何确定合并报表的范围简答题
  • 无形资产摊销完还需要报废
  • 行政事业性收费包括哪些项目
  • 去年多确认收入今年怎么调整
  • 管理费用进项税额转出会计分录
  • 定额发票可以抵进项税吗
  • 印花税按次按月
  • pavfires.exe - pavfires是什么进程 有什么用
  • 高端显卡排名
  • PHP:imagecreatefromgif()的用法_GD库图像处理函数
  • 免费设备投放项目
  • electron-vue官网
  • 物流辅助服务要办许可证吗
  • 运营费的税率
  • 固定资产租赁费发票增值税税率
  • 财务报表中的应收款项包括哪些
  • 应收账款与营业收入比例分析
  • 借条每月还款怎么写
  • 社保缴费是当月扣当月的吗
  • 分页存储过程是什么
  • 房地产企业印花税计入什么科目
  • 交加盟费送赠品可以吗
  • 什么是金税四期什么时候上线
  • 取得的增值税普通发票丢了怎么办理
  • 企业进项税和销项税怎么抵扣
  • 增值税是指怎样计算的
  • 固定资产被盗怎么处理
  • 出售抵债资产账务处理
  • 营改增后房地产企业如何开票
  • 企业如何优化管理
  • 月末未完工半成品的分录
  • 企业预付账款是什么意思
  • 投资管理工作内容
  • mysql oracle和sqlserver分页查询实例解析
  • win7打开控制面板快捷键
  • win2008 R2 与SP1 PS2无法安装操作系统补丁的解决办法
  • centos7修改网络
  • ubuntu系统怎么修改root密码
  • win8怎么禁用更新
  • win10系统怎么设置电脑密码
  • 电脑老是弹出提示
  • linux安装步骤
  • GLWallpaperService分析一
  • 搭建gitbook
  • dos命令到一个文件夹
  • wow 脚本开发
  • jquery img onload
  • 第2类医疗器械许可证代办
  • 南通国家税务局
  • 一般纳税人每月开票金额有限额吗
  • 柬埔寨现在的领导
  • 取得土地使用权后两年未开发
  • 报税软件怎么用
  • 水厂管理经验
  • 2021年十大慈善企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设