You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Audio中preferredPolarPattern与selectedPolarPattern的区别是什么

preferredPolarPattern与selectedPolarPattern核心差异

两个属性的本质区别是:前者是开发者向系统提交的诉求值,后者是系统最终确定的实际生效值。

两个属性的具体释义

官方定义的中文翻译如下:

/// 描述当前实际选中的极性模式,对于没有可选择模式的数据源,该值为nil
@property (readonly, nullable) AVAudioSessionPolarPattern selectedPolarPattern API_AVAILABLE(ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos, macos);

/// 描述开发者设置的偏好极性模式,对于没有可选择模式的数据源、或是开发者没有设置过偏好的场景,该值为nil
@property (readonly, nullable) AVAudioSessionPolarPattern preferredPolarPattern API_AVAILABLE(ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos, macos);

preferredPolarPattern

该值记录的是开发者通过setPreferredPolarPattern:error:方法主动设置的麦克风指向性偏好,仅代表你希望系统采用的模式,不保证一定会生效:

  • 你设置的模式不在当前数据源的支持列表中时,系统会忽略你的设置,该值仍会记录你提交的偏好
  • 即使你的设置符合要求,系统也可能因为更高优先级的音频任务(比如来电、系统语音唤醒)临时切换模式,该值不会随系统临时切换改变

selectedPolarPattern

该值是麦克风硬件当前真实使用的指向性模式,完全由系统根据当前所有音频任务的优先级、硬件支持能力最终决定:

  • 当你的偏好设置被系统采纳时,该值和preferredPolarPattern一致
  • 当系统因为其他原因调整了麦克风模式时,该值会同步更新为实际生效的模式,和你设置的偏好无关

常见不一致场景

举个实际场景:你开发的录音App需要心型指向模式降低环境噪音,你调用方法将preferredPolarPattern设置为心型,录音过程中突然有来电接入:

  • 此时preferredPolarPattern的值仍然是你设置的心型
  • selectedPolarPattern会被系统切换为通话场景默认的全指向模式
  • 通话结束后如果系统恢复你的录音会话,两个值会重新变为一致

内容的提问来源于stack exchange,提问作者h.and.h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:27:02