ios - iOS 音频:preferredPolarPattern 和 selectedPolarPattern 有什么区别?
问题描述
preferredPolarPattern 和 selectedPolarPattern 有什么区别?我已阅读此处和此处的文档。也许我很密集,但我看不出两者之间的区别。有任何想法吗?
从文档:
/// Describes the currently selected polar pattern. Will be nil for data sources that have no
/// selectable patterns.
@property (readonly, nullable) AVAudioSessionPolarPattern selectedPolarPattern API_AVAILABLE(ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos, macos);
/// Describes the preferred polar pattern. Will be nil for data sources that have no selectable
/// patterns or if no preference has been set.
@property (readonly, nullable) AVAudioSessionPolarPattern preferredPolarPattern API_AVAILABLE(ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos, macos);
解决方案
这更像是一个关于阅读苹果文档的过程的问题,而不是一个纯粹的编程问题。
首先,我们应该考虑AVAudioSessionDataSourceDescription
对象,特别是在“配置麦克风方向性”小节中进行磨练。
阅读属性和方法很重要,因为有时重要信息不会在所有相关文章中复制。如果对象、属性或方法的功能不清楚,请记住还要查看“另请参阅”部分。
在这种情况下,我们有两个属性,乍一看似乎反映了相同的信息。
selectedPolarPattern
:数据源的活动极性模式。preferredPolarPattern
:数据源的首选方向性配置。
这两个属性都处理麦克风的极性模式。在这里区分它们的关键字是active和preferred。即便如此,这并不能填补所有空白,特别是当这两个属性具有不同的值时。
这是我们应该阅读文档以获取更多线索的时候。是否有与这些相关的任何其他属性或方法?有supportedPolarPatterns
,但这只是设备支持的一系列极性模式。有一个setter 方法,对于preferredPolarPattern
, setPreferredPolarPattern
。没有setSelectedPolarPattern
orsetPolarPattern
方法。诡异的!。这应该是关于方法行为的标志。
请记住,使用 Apple 的 API,您不一定可以控制某些操作何时发生。
这在 的讨论中得到证实setPreferredPolarPattern
,我们在其中读到:
调用此方法请求更改所选极性模式。要确定更改是否已生效,请检查 selectedPolarPattern 属性。
这证实了何时preferredPolarPattern
将不同于selectedPolarPattern
另请注意:
如果数据源及其所属端口正在使用中,使用此方法更改方向性配置可能会导致路由重新配置。
只有在设置音频会话的类别和模式并激活会话后才能设置首选极性模式。
推荐阅读
- javascript - 如何在 Apollo 中使用乐观 UI 处理删除突变?
- css - 材质 UI 选择的选项未显示在选择框中
- postman - 邮递员 sendRequest 使用来自集合的授权
- swift - 使用 viewdidload 在 UIView 中显示一些元素
- gatsby - Gatsby 将 javascript frontmatter 与 allSitePage 查询相结合
- lua - 使三次缓入曲线动态切换其目标位置
- unity3d - 我仍然不明白为什么将一个简单的小型预制件从一个项目复制到另一个项目如此困难?
- css - 为什么我的活动 li 比悬停的 li 大?
- c# - FirstOrDefaultAsync() & SingleOrDefaultAsync() vs FindAsync() EFCore
- java - java.io.FileNotFoundException: C:\Engines\Data.xlsx(系统找不到指定的文件)