当前位置: 首页 > news >正文

安卓app整站织梦网站源码网站制作网站制作公司

安卓app整站织梦网站源码,网站制作网站制作公司,公司网站做论坛,用来制作网页的软件是原文地址#xff1a;http://android.xsoftlab.net/training/managing-audio/audio-focus.html 因为可能会存在多个APP播放音频#xff0c;所以考虑它们之间的交互方式是一件很重要的事情。为了避免多个音乐播放器APP在同一时间播放音乐#xff0c;Android使用了音频焦点的方…原文地址http://android.xsoftlab.net/training/managing-audio/audio-focus.html 因为可能会存在多个APP播放音频所以考虑它们之间的交互方式是一件很重要的事情。为了避免多个音乐播放器APP在同一时间播放音乐Android使用了音频焦点的方式来管理音频的播放只有获取了音频焦点的APP才可以播放音频。 在APP开始播放音频之前APP需要请求以及接收音频的焦点。同样的APP还应该知道如何监听音频焦点的丢失事件以及当事件发生的时候如何恰当的作出响应。 请求音频焦点 在APP播放音频之前APP应该对使用的音频流持有音频焦点。可以使用 requestAudioFocus() 方法来获取焦点如果请求成功的话它会返回 AUDIOFOCUS_REQUEST_GRANTED 。 你必须指定你所使用的音频流并且还需要请求短暂的音频焦点或者永久的音频焦点。当你想要播放一个短暂的音频时可以请求短暂的音频焦点(举例当播放导航声音时)。当需要播放一个长时间的音频时就需要请求永久的音频焦点(举例播放音乐)。 下面的代码展示了对音乐音频流上请求了永久的音频焦点。你应该在开始播放之前立即请求音频焦点比如当用户按下了播放按钮或者游戏中下节背景音乐开始之前。 AudioManager am mContext.getSystemService(Context.AUDIO_SERVICE); ... // Request audio focus for playback int result am.requestAudioFocus(afChangeListener,// Use the music stream.AudioManager.STREAM_MUSIC,// Request permanent focus.AudioManager.AUDIOFOCUS_GAIN);if (result AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {am.registerMediaButtonEventReceiver(RemoteControlReceiver);// Start playback. } 一旦APP结束了播放应该确保调用了abandonAudioFocus()方法。这会通知到系统你不再需要请求焦点以及它会解注与之关联的AudioManager.OnAudioFocusChangeListener回调接口。在丢弃短暂焦点的例子中它允许任何被中止的APP可以继续播放音频。 // Abandon audio focus when playback complete am.abandonAudioFocus(afChangeListener); 当请求短暂的音频焦点时有一些附加选项无论你是否想要正常开启”ducking”选项当一个友好的APP失去音频焦点的时候它会立即停止播放。通过请求一个瞬态音频焦点时它允许闪避当你告诉其它音频APP它可以接收它们的持续播放只要它们会降低音量直到音频焦点返回给它。 // Request audio focus for playback int result am.requestAudioFocus(afChangeListener,// Use the music stream.AudioManager.STREAM_MUSIC,// Request permanent focus.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);if (result AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {// Start playback. } 闪避对间歇性的音频流APP来说特别适合比如导航方向的播报信息。 当其它APP如上面描述的那样请求音频焦点时它可以在永久的音频焦点或者短暂的音频焦点之间选择这两个焦点会由请求焦点时注册的监听回调方法回调回来。 处理音频焦点的丢失 如果APP可以请求到音频焦点那么接下来在其它APP请求焦点的时候它就可能会失去那个焦点。APP如何响应焦点的丢失取决于丢失的方式。 音频焦点改变接口的回调方法onAudioFocusChange()会接收一个参数这个参数用于描述焦点改变事件。特别的焦点的丢失事件可能与原先部分请求的焦点类型相对应–永久丢失短暂丢失以及短暂的限制性闪避。 通常来说音频焦点的短暂丢失应该致使APP的音频流静音。否则就应该保持相同的状态。你应该继续监视音频焦点的改变以便当APP恢复焦点的时候从暂停的地方恢复播放。 如果音频焦点的丢失是永久性的假设现在有其他APP被用来监听音频焦点这时APP应该有效的自动终止。在实际情况中这意味着停止播放移除媒体按钮监听器–这运行一个新的音频播放器来专门处理这些事件以及丢弃持有的音频焦点。在那时在APP重新播放之前你会期待有用户来触发那个请求。 在下面的代码中如果音频丢失是短暂的我们会暂停播放或者暂停我们的媒体播放器对象并会在重新获得焦点时恢复它们。如果丢失是永久性的它会解注我们的媒体按钮事件接收器以及停止对音频焦点改变的监听。 OnAudioFocusChangeListener afChangeListener new OnAudioFocusChangeListener() {public void onAudioFocusChange(int focusChange) {if (focusChange AUDIOFOCUS_LOSS_TRANSIENT// Pause playback} else if (focusChange AudioManager.AUDIOFOCUS_GAIN) {// Resume playback } else if (focusChange AudioManager.AUDIOFOCUS_LOSS) {am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);am.abandonAudioFocus(afChangeListener);// Stop playback}} }; 当闪避在允许的时候短暂的失去了音频焦点不应该是暂停播放而是”duck”。 Duck! Ducking 是降低音频流输出音量的过程这可以使得其他APP的短暂音频听起来更轻快更和谐而不会总是打断APP的播放过程。 下面的代码当我们临时的失去焦点时会降低媒体播放器对象的音量当再一次获得焦点时会将音量等级恢复至原来的值。 OnAudioFocusChangeListener afChangeListener new OnAudioFocusChangeListener() {public void onAudioFocusChange(int focusChange) {if (focusChange AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) {// Lower the volume} else if (focusChange AudioManager.AUDIOFOCUS_GAIN) {// Raise it back to normal}} }; 音频焦点的丢失是由大多数重要的广播影响的但是不单单只是有它引起的。系统会广播一系列的意图来使你留意用户的听觉体验。下节课会演示如何监视音频焦点来增进用户的整体体验。
http://www.sadfv.cn/news/231640/

相关文章:

  • 怎么诊断网站企业网站优化设计的含义
  • 网站开发培训哪里好网站内容建设
  • 彩虹云商城网站搭建互联网创业项目代理
  • windows设置wordpress网站建设快照优化
  • 企业网站源码变现方法网站开发如何共用菜单栏
  • 根据 我司申请 网站建设平台网站 备案吗
  • 怎么做网站寄生虫毕设 做网站
  • 网站如何防止黑客攻击汕头建站网站模板
  • 南宁有做网站的公司吗何做百度推广网站
  • 哪个网站可以做自己的网页网站首页点击中文英文链接 翻译成对应的语言 怎么做
  • 龙岩有什么招聘本地网站wordpress搭建拒绝访问
  • 苏州做网站费用制作网页需要哪些技术
  • 网站备案审核流程图设计图制作软件免费下载
  • 网站开发的小结在线设计logo免费网站
  • 做设备开通哪个网站好做网站运营的女生多吗
  • 哪个网站专题做的好公司官网设计模板
  • 国外大型门户网站制作app开发的公司
  • WordPress播放流媒体seo标题优化的心得总结
  • 如何联系网站安阳网站设计哪家专业
  • 网站备案需要多少天营销公司排行
  • 唐山做企业网站图标设计免费logo
  • 国外网站模版免费下载外贸网站做几种产品
  • 怎么免费做网站教程医院官方网站建设
  • 简述电子商务网站的建设WordPress与阿里云对象存储
  • 怎样做海外淘宝网站学历提升大专大概要多少钱
  • 北京市建设公租房网站网站快照时间
  • 建设一个朋友的网站网站建设出现401
  • 手机上网自动跳转网站平面ui设计是什么
  • 东营兴通建设工程公司网站吉林省白山市建设厅网站首页
  • 建设网站定位分析做论文常用网站