AVAudioRecorder:iOS9 上 iPad4 的录音设置

AVAudioRecorder: Audio recording settings for iPad4 on iOS9

我正在录制音频的应用程序在从 iOS8 更新到 iOS9 后开始无法在 iPad4 上录制。

目前使用的录音机设置为:

    audioSegmentURL = ... (a URL with fileextension @"mp4");
    recorderSettings = @{ AVFormatIDKey: @(kAudioFormatMPEG4AAC),
                          AVEncoderAudioQualityKey: @(AVAudioQualityMin),
                          AVEncoderBitRateKey: @(8),
                          AVNumberOfChannelsKey: @(1),
                          AVSampleRateKey: @(11025.0)
                          };

这是AVAudioRecorder的初始化:

NSError *err;
AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc] initWithURL:audioSegmentURL settings:recorderSettings error:&err];

这个调用好像成功了,errnil

调用prepareToRecordreturnsNO:

BOOL res = [audioRecorder prepareToRecord];

很遗憾我没有iPad4。 iPad Mini2 不会出现此问题。 (我也有一个 iPad Air,但它不支持 AAC 硬件编码并且它使用不同的录音设置。)

这适用于 iOS8。它在 iPad4 升级到 iOS9 后开始失败。

有人知道吗,哪些设置适用于 iPad4 和 iOS9?

非常感谢。

编辑 1:

为了测试,我让录音在 iPad4:

上使用这个
    audioSegmentURL = ... (a URL with fileextension @"caf");
    recorderSettings =  @{ AVFormatIDKey: @(kAudioFormatAppleIMA4),
                           AVNumberOfChannelsKey: @(1),
                           AVSampleRateKey: @(16000.0)
                           };

录音似乎有效。然而,在录制之后我将几个声音片段附加在一起,但在 iPad4.

上似乎失败了

组合使用 AVMutableComposition,它有多个 AVMutableCompositionTrack,一个 AVAssetExportSession,输出文件类型设置为 AVFileTypeAppleM4A

M4A 与 iPad4 和 iOS9 上的 IMA4 不兼容吗?

您的比特率在第一个录音设置字典中看起来不正确。尝试删除 AVEncoderBitRate 密钥。我不知道这是否重要,但您可能想要一个以 m4a 结尾的文件名,而不是 mp4 结尾的音频文件。