我正在使用 RemoteIO 音频单元将音频输出到硬件。我的主要问题是我现在的音频处理只允许 44.1kHz 输出。我听说像 iPhone 11 这样的新 iPhone 以 48kHz 运行。这意味着我渲染的输出将与硬件配置不匹配。
这是我为 remoteIO 设置 ASBD 的方法。
AudioStreamBasicDescription const audioDescription = {
.mSampleRate = 44100,
.mFormatID = kAudioFormatLinearPCM,
.mFormatFlags = kAudioFormatFlagIsFloat,
.mBytesPerPacket = STEREO_CHANNEL * sizeof(float),
.mFramesPerPacket = 1,
.mBytesPerFrame = STEREO_CHANNEL * sizeof(float),
.mChannelsPerFrame = STEREO_CHANNEL,
.mBitsPerChannel = 8 * sizeof(float),
.mReserved = 0
};
status = AudioUnitSetProperty(audioUnit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
kOutputBus,
&audioDescription,
sizeof(audioDescription));
我在这里看到您可以以某种方式配置 RemoteIO 以使用指定的采样率。我假设这意味着我可以以 44.1khz 运行我的应用程序,RemoteIO 将为我进行转换。
有没有办法将 RemoteIO 配置为在我渲染音频时使用固定的采样率,并在我使用的采样率与硬件采样率不匹配时让它进行采样率转换?
旁注:我的 IOS 模拟器正常运行在 44100 并且我没有 iPhone,所以我无法使用真实设备进行测试。