【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus

【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus

ID:33764955

大小:191.54 KB

页数:4页

时间:2019-03-01

【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus_第1页
【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus_第2页
【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus_第3页
【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus_第4页
资源描述:

《【android开发wiki】进阶篇音频管理-managing audio playback(二):音频管理焦点—managing audio focus》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、eoe移动开发者社区http://www.eoe.cn/原文链接:http://docs.eoeandroid.com/training/managing-audio/audio-focus.html由于存在多个App同时请求播放音频的情况,所以您需要考虑这些App该如何交互。为避免多个音乐App在同时请求音频播放的时候发生冲突,Android平台使用了音频焦点这一概念来协调音频播放——即只有获得音频焦点的App才可以播放音频。在应用开始播放音频之前,它需要首先请求并获得音频焦点。同时,App应该能监听失去音

2、频焦点事件,并做出相应的处理。请求音频焦点在开始播放音频之前,App必须先获取需要处理的音频流的音频焦点。音频焦点可以通过requestAudioFocus()方法获得,在音频焦点成功获取后,该方法会返回AUDIOFOCUS_REQUEST_GRANTED常量,否则,会返回AUDIOFOCUS_REQUEST_FAILED常量。您需要指定进行操作的音频流,并确定要获取短暂的还是长期的音频焦点。短暂的音频焦点用于处理播放短时间的音频(例如汽车导航仪的提示)。如果您想长时间播放音频(例如播放音乐),那么就需要请求

3、长期的音频焦点。下面的代码演示了如何获取Music音频流的长期焦点。获得音频焦点的请求应该在马上就要播放音频前发出,比如在用户按下播放键或下一关游戏的背景音乐就要开始时发出焦点请求,接着再播放音乐。1.AudioManageram=mContext.getSystemService(Context.AUDIO_SERVICE);2....3.4.//请求播放的音频焦点5.intresult=am.requestAudioFocus(afChangeListener,6.//指定所使用的音频流7.AudioMa

4、nager.STREAM_MUSIC,8.//请求长时间的音频焦点9.AudioManager.AUDIOFOCUS_GAIN);10.11.if(result==AudioManager.AUDIOFOCUS_REQUEST_GRANTED){12.am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);13.//开始播放eoe移动开发者社区http://www.eoe.cn/14.}当完成音频播放后,请一定记得调用abandonAudioF

5、ocus()方法,这会通知系统您的App不再需要音频焦点,并移除相关OnAudioFocusChangeListener的注册。如果释放的是短暂音调焦点,那么被打断的音频会被继续播放。1.//当播放结束,您需要释放音频焦点2.am.abandonAudioFocus(afChangeListener);当请求短暂音频焦点时,您可以添加有一额外的选择——是否使用“浮动声音(英文为“ducking”,这里是指降低原音频流播放的音量,并使获得短暂音频焦点的音频流音量较大,而不去停止原来音频流的播放)”方式。通常来说

6、,一个好的音频播放App会在失去音频焦点时立即停止播放。但如果在请求短暂音频焦点时使用“浮动声音”方式,可以允许先前的App以较低的音量继续播放,在重新获得音频焦点后再以原来的音量播放。1.//请求播放的音频焦点2.intresult=am.requestAudioFocus(afChangeListener,3.//指定所使用的音频流4.AudioManager.STREAM_MUSIC,5.//请求短暂焦点6.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)

7、;7.8.if(result==AudioManager.AUDIOFOCUS_REQUEST_GRANTED){9.//开始播放10.}浮动音频非常适合间断播放音频的App,例如导航仪的提示。当其他App通过上述方式请求音频焦点时,您所注册的监听器可以判断是否获得到了长期或短暂(可以选择浮动音频方式)的音频焦点。对丢失音频焦点进行处理App请求并得到音频焦点后,当其他App请求得到焦点时,先前的App就会失去焦点。您的App需要根据失去音频焦点的不同方式进行相应处理。eoe移动开发者社区http://www

8、.eoe.cn/请求音频焦点时注册的音频焦点监听器中有onAudioFocusChange(int)回调函数,该回调函数会接收描述焦点变化事件的参数。需要注意的是,失去音频焦点的事件类型与请求焦点的类型相对应——失去长期焦点(AUDIOFOCUS_LOSS)、短暂焦点(AUDIOFOCUS_LOSS_TRANSIENT)和浮动音频方式的短暂焦点(AUDIOFOCUS_LOSS_TRANSIENT)。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。