android音量调整流程+hdmi音量控制修改

android音量调整流程+hdmi音量控制修改

ID:6092842

大小:54.00 KB

页数:3页

时间:2018-01-02

android音量调整流程+hdmi音量控制修改_第1页
android音量调整流程+hdmi音量控制修改_第2页
android音量调整流程+hdmi音量控制修改_第3页
资源描述:

《android音量调整流程+hdmi音量控制修改》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、当按键按下时,底层上报事件给KeyguardUpdateMonitor,窗口管理器WindowManager,从KeyguardUpdateMonitor获取具体按键信息,如果是Volume+/-则直接由AudioManager.java处理,调用方法adjustSuggestedStreamVolume,其参数direction包括ADJUST_LOWER(-键)、ADJUST_RAISE(+键)、ADJUST_SAME(不调整),suggestedStreamType为音频流类型,flags为特殊标志位,下面会讲到。ad

2、justSuggestedStreamVolume方法内直接通过IAudioService获取framework层的AudioService服务,AudioService针对强制使用某种音频,通过AudioSystem的JNI从HAL层获取状态,并进行切换,再执行adjustMasterVolume/adjustSuggestedStreamVolume方法,方法内部处理了STREAM_REMOTE_MUSIC和非REMOTE_MUSIC的音量调整,STREAM_REMOTE_MUSIC是在当后台播放音乐时,不在前台运行的情

3、况。adjustSuggestedStreamVolume先对当前stream获取在执行的streamtype类型,包括通话状态收音机播放,音乐播放等,此处需要hal层获取streamtype,得到streamtype后如果是STREAM_REMOTE_MUSIC,将清楚flags中的标志FLAG_PLAY_SOUND、FLAG_FIXED_VOLUME等。STREAM_REMOTE_MUSIC类型继续执行adjustRemoteVolume,否则执行adjustStreamVolume,这里主要进入adjustStream

4、Volume方法。在adjustStreamVolume方法内检查SafeMedaiVolume在插耳机情况下需提示,如果streamtypealias为STREAM_MUSIC,且设备类型包括DEVICE_OUT_AUX_DIGITAL,将添加flags标志位:flags

5、=AudioManager.FLAG_FIXED_VOLUME固定不能调节音量的设备包括:finalintmFixedVolumeDevices=AudioSystem.DEVICE_OUT_AUX_DIGITAL

6、AudioSystem.DEVICE_

7、OUT_DGTL_DOCK_HEADSET

8、AudioSystem.DEVICE_OUT_ANLG_DOCK_HEADSET

9、AudioSystem.DEVICE_OUT_ALL_USB;DEVICE_OUT_AUX_DIGITAL是针对HDMI类型。最后,sendVolumeUpdate直接调用mVolumePanel.postVolumeChanged(streamType,flags)设定并显示进度条,VolumePanel内部会根据flags标志是否包含FLAG_FIXED_VOLUME,设定进度条sc.seekba

10、rView.setEnabled(false/true),VolumePanel内会有个dialog显示。至此,上层的调用过程结束。在HAL策略上只需修改一处,AudioPolicyManager的computeVolume方法,修改如下:修改前:if(stream==AudioSystem::MUSIC&&index!=mStreams[stream].mIndexMin&&(device==AUDIO_DEVICE_OUT_AUX_DIGITAL

11、

12、device==AUDIO_DEVICE_OUT_DGTL_DOCK_H

13、EADSET

14、

15、device==AUDIO_DEVICE_OUT_USB_ACCESSORY

16、

17、device==AUDIO_DEVICE_OUT_USB_DEVICE)){return1.0;}修改后:if(stream==AudioSystem::MUSIC&&index!=mStreams[stream].mIndexMin&&(//device==AUDIO_DEVICE_OUT_AUX_DIGITAL

18、

19、device==AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET

20、

21、device==AUDIO

22、_DEVICE_OUT_USB_ACCESSORY

23、

24、device==AUDIO_DEVICE_OUT_USB_DEVICE)){return1.0;}具体流程如何走到这里。对输出策略的管理上,在插HDMI时于桌面调整音量,默认不使用HDMI输出,因为在输出设备判断上有操作:if((dev

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

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

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