iOS系统允许多应用共享麦克风吗?为何直播场景下iOS可实现而安卓不行?
iOS支持多应用同时录制麦克风音频的原因
音频会话架构差异:iOS的音频会话框架允许多个配置兼容的应用同时激活音频输入。比如直播和游戏应用都设置
AVAudioSessionCategoryPlayAndRecord类别,并开启AVAudioSessionCategoryOptionMixWithOthers选项,系统就会统一处理麦克风资源分配与音频流分发,让两者同时录麦。而Android默认是独占模式,同一时间仅一个应用能获取麦克风录制权限;即便Android 10及以上版本支持多输入,也需要应用额外适配,再加上厂商定制ROM的限制,很难稳定实现该功能。权限模型区别:iOS的麦克风权限是应用级授权,用户同意后,所有获权应用都能同时访问麦克风,系统负责音频混合处理。Android则不同——哪怕多个应用都拿到了麦克风权限,底层音频服务也会限制同一时间只有一个活跃录制会话,后启动录麦的应用会直接抢占资源,中断前者的录制。
系统优化方向不同:iOS从早期就侧重多媒体多应用协同场景(比如直播、边玩游戏边语音),原生支持多路音频处理和混合。而Android更偏向单应用资源独占,优先保证单个应用的音频质量,对多应用同时录麦的场景优化起步晚,且不同厂商的定制ROM进一步压缩了这个功能的可用空间。
内容的提问来源于stack exchange,提问作者Cobain Zhu
相关产品推荐
相关产品推荐

