二、外设类型
USB音箱底座
蓝牙音箱
3.5mm线控耳机
三、相关术语
track volume: 单个App设置音量时设置的是这个,它只影响本App的音量。
stream volume: 设置某一stream的音量,Android系统中支持的stream,可以在audio.h中找到。
stream volume alias: 设置的是同一组stream的音量,比如使用某个音量调节滑动条设置的音量。比如设置媒体音,所有App的媒体音都受到影响(但是电话音,闹钟音不受影响)。
master volume: 设置它等于设置所有的stream volume和track volume。它可以写到声卡里面去,控制所有声音的音量。也可以不写到声卡里面去,而是作为一个乘数因子来影响所有的音量。
四、音量调节流程
Android平台的设备,常见的手机、平板、车机、广告屏,调节音量基本有两种常用方式:音量键和滑动条。下面分别介绍写这两种方式的大致流程。
1.音量键
音量键的动作由 PhoneFallbackEventHandler 处理,它会调用AudioService.adjustSuggestedStreamVolume 调整“推荐的流”的音量。
获取“推荐的流”:stream = getActiveStreamType(…),就是获取当前活动的流。比如当前在通话,按音量键时,调节的就是话音的音量。
设置流的音量:adjustStreamVolume调用 sendMsg 发送 MSG_SET_DEVICE_VOLUME 消息,由handleMessage 来进行处理。
将设置后的StreamVolume保存到SettingsProvider中。
2.滑动条(SeekBa