0

我正在使用 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,所以我无法使用真实设备进行测试。

4

0 回答 0