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

楚州网站开发微信商城小程序多少钱

楚州网站开发,微信商城小程序多少钱,长沙企业查询,房屋装修设计app说实话#xff0c;android的代码是越来越难以阅读。业务函数里面狗皮膏药似的补丁与日俱增。继上篇简要介绍音频焦点的文章#xff0c;这篇文章的主要内容是分析audiofocus的实现。看了一下午的相关代码都没找到做audiofocus策略的核心逻辑。目前能看懂的大概包含下面两个逻辑…说实话android的代码是越来越难以阅读。业务函数里面狗皮膏药似的补丁与日俱增。继上篇简要介绍音频焦点的文章这篇文章的主要内容是分析audiofocus的实现。看了一下午的相关代码都没找到做audiofocus策略的核心逻辑。目前能看懂的大概包含下面两个逻辑。欢迎评论区沟通。 audiofocus实现的核心代码是在project_dir/frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java project_dir/frameworks/base/services/core/java/com/android/server/audio/FocusRequester.java project_dir在这里指代android源码的根目录。 1.MediaFocusControl会维护所有audiofocus申请信息的堆栈mFocusStack。 2.android当系统进入铃声或者通话状态会静音住媒体播放器代码片段如下mRingOrCallActive变量会在应用申请焦点时进行判断刷新。 if (mRingOrCallActive) {mFocusEnforcer.mutePlayersForCall(USAGES_TO_MUTE_IN_RING_OR_CALL);} else {mFocusEnforcer.unmutePlayersForCall();} 3.audiofocus的监听器都是在AudioManager的队列里维护。代码如下 public void registerAudioFocusRequest(NonNull AudioFocusRequest afr) {final Handler h afr.getOnAudioFocusChangeListenerHandler();final FocusRequestInfo fri new FocusRequestInfo(afr, (h null) ? null :new ServiceEventHandlerDelegate(h).getHandler());final String key getIdForAudioFocusListener(afr.getOnAudioFocusChangeListener());mAudioFocusIdListenerMap.put(key, fri);}4.audiomanager进行焦点变化通知的核心类IAudioFocusDispatcher会调用listener。IAudioFocusDispatcher 自身会被注册给audioservice。 status service.requestAudioFocus(afr.getAudioAttributes(),afr.getFocusGain(), mICallBack,mAudioFocusDispatcher,clientId,getContext().getOpPackageName() /* package name */, afr.getFlags(),ap ! null ? ap.cb() : null,sdk);阅读代码期间出现重大错误阅读函数handleFocusLossFromGain的时候认为gain是增益的含义没仔细阅读实现。导致增加阅读理解代码的时间周期。gain在这里应该是对应焦点的第一种类型永久性焦点。犯了惯性思维的错误。遇到这种与认知相悖的地方应该更加小心。gain在这块代码里面的含义是获得与之对应的是loss。 androidaudio进行audiofocus控制决策的核心代码是下面这一段 if (mMultiAudioFocusEnabled (focusChangeHint AudioManager.AUDIOFOCUS_GAIN)) {if (enteringRingOrCall) {if (!mMultiAudioFocusList.isEmpty()) {for (FocusRequester multifr : mMultiAudioFocusList) {multifr.handleFocusLossFromGain(focusChangeHint, nfr, forceDuck);}}} else {boolean needAdd true;if (!mMultiAudioFocusList.isEmpty()) {for (FocusRequester multifr : mMultiAudioFocusList) {if (multifr.getClientUid() Binder.getCallingUid()) {needAdd false;break;}}}if (needAdd) {mMultiAudioFocusList.add(nfr);}nfr.handleFocusGainFromRequest(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);notifyExtPolicyFocusGrant_syncAf(nfr.toAudioFocusInfo(),AudioManager.AUDIOFOCUS_REQUEST_GRANTED);return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;}}思考android Audio focus的设计时我想到一个问题如果某APP先申请media类型的focus然后再去申请call类型的focus会怎么样
http://www.tj-hxxt.cn/news/232153.html

相关文章:

  • 南宁建网站龙岗网站建设企业
  • 网站文章推广如何建设小说网站
  • 巨鹿网站建设网络公司中国万网域名注册服务内容
  • 织梦网站被做跳转网站主机ip查询
  • 加人引流加人网站怎么做黄冈网站制作
  • 网站建设自查情况报告莘庄做网站
  • js判断是手机还是电脑访问网站垂直电商平台有哪些?
  • 宣传式网站网页设计培训传智教育
  • 嘉兴城乡建设网站做报纸版式的网站
  • 呼和浩特做网站的朝阳网站建设 慈云寺
  • 湘潭找工作网站个人的网站建设的目的
  • 哪家成都公司做网站网页游戏平台排名前10名
  • 网站建设和网站开发的区别深圳手机网站公司
  • 网站添加属性物流网站的功能与特色
  • 网络营销做得好的产品什么网站做优化最好?
  • 做网站的联系方式免费培训机构
  • 淘宝客网站WordPress最新注册公司流程及费用
  • 网站设计网页首页介绍如何搭建微信公众号平台
  • 直播网站可以做毕设吗网页模板网站有那些
  • 沧州做网站哪家好网页设计ppt模板
  • 东莞整站排名苏州品牌网站建设
  • 织梦网站后台模板wordpress移动
  • pdf怎么做电子书下载网站买了域名怎么做网站
  • 中国工商银行网站建设WordPress勾选评论
  • 哈尔滨房地产型网站建设资源共享课程网站开发毕业设计
  • 兰州展柜公司网站建设邯郸市网站建设多少钱
  • 滴滴网站建设流程seo快排优化
  • 漳州市建设网站网店代运营具体做什么
  • 企业网站建设中有哪几个重要点青岛网站建设大全
  • 网站建设要不要学编码WordPress人物插件