实际场景:
应付客户电子产品的3C认证,声音大小必须小于85DB,但是产品以K歌为特色,外响声音必须大。
解决思路:
设备定义两个声音模式,成人模式和儿童模式。成人模式的音量为原始音量,儿童模式的音量最大值为原始音量最大值得一半,或者更小
解决方案:
- 自己应用层实现,音量条最大值是自己定义的。
- 直接系统层Framework层,在Audio层写代码,定制自己的功能。
说明:方案一太LowB,下面具体分析方案二的实现。
需求分析:
- 模式需要切换,设置儿童模式、是否儿童模式
- 设置当前儿童模式中Alarm最大音量,获取当前儿童模式最大Alarm音量
- 设置当前儿童模式Call最大音量,获取当前儿童模式下最大Call音量
- 设置当前儿童模式Music最大音量,获取当前儿童模式下最大Music音量
特别说明
本文不做Audio层各种流程,各种的原理,只做现有功能逻辑的实现和分析。
IAudioService.aidl 添加接口。
/**
* {@hide}
*/
interface IAudioService {
void adjustSuggestedStreamVolume(int direction, int suggest
针对电子产品需满足3C认证声音不超过85DB的要求,同时保持K歌特色,设计了成人与儿童两种音量模式。儿童模式下,通过自定义AudioService接口,限制最大音量,实现合规与用户体验的平衡。
订阅专栏 解锁全文
3016

被折叠的 条评论
为什么被折叠?



