为什么我得到kAudioUnitErr_FormatNotSupported(10868)错误?
问题描述:
这是我遇到的核心音频中最神秘的错误。当我在音频单元的输出上发送格式时,为什么会出现此错误?为什么我得到kAudioUnitErr_FormatNotSupported(10868)错误?
这是因为音频单元是否支持我正在使用的流格式,还是因为我所在的平台(即iOS)不支持该格式?
如果是前者,每个音频单元是否只支持特定格式?如果是这样,我在哪里可以找到这些信息?
我试图建立一个对音频单元和音频图形的直观理解。它主要是有道理的,但流格式令人难以置信的神秘。
答
是因为音频单元确实支持我使用的流格式,还是因为我所在的平台(即iOS)不支持格式?
可能是非盟 - 什么是返回错误代码? AudioUnitSetProperty
?
......每个音频单元是否只支持特定格式?如果是这样,我在哪里可以找到这些信息?
AU可以支持多种格式。你必须问AU它支持哪些格式(可能因版本而异)。针对特定平台(例如OS X或iOS)构建的AU通常支持OS的“canonic”格式,并可能支持其他平台。 canonic格式因平台而异。在OS X上,AU很少偏离典范格式(去交错float
PCM);
此外,请验证您是否正确设置格式 - 您是否可以使用该格式在iOS上初始化任意 AU,或者只是给您带来麻烦?它是如何定义的?它是操作系统的canonic格式吗?如果您想要的格式非常必要,则可能需要格式转换。
答
音频单元支持不同平台上的不同格式。您可以通过尝试一种格式查询音频单元并检查不支持的格式错误 消息。