AVAudioRecorder:iOS9上iPad4的录音设置

时间:2015-10-02 17:49:29

标签: ios ios9 avaudiorecorder

我正在处理的应用程序记录音频,并在从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

prepareToRecord的调用会返回NO

BOOL res = [audioRecorder prepareToRecord];

不幸的是我没有iPad4。 iPad Mini2上不会出现此问题。 (我也有iPad Air,但它不支持AAC硬件编码,它使用不同的录制设置。)

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

有人知道,哪些设置适用于带iOS9的iPad4?

非常感谢。

EDIT1:

对于测试,我让录音在iPad4上使用:

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

录音似乎奏效了。然而,在录制之后,我将几个声音片段附加在一起,而这似乎在iPad4上失败了。

合成使用AVMutableComposition,其AVMutableCompositionTrackAVAssetExportSessionAVFileTypeAppleM4A,输出文件类型设置为M4A

iOS4上的IMA4与iPad上的somemodel不兼容吗?

1 个答案:

答案 0 :(得分:0)

您的比特率在首次录制设置词典中看起来不正确。尝试删除AVEncoderBitRate键。我不知道这是否重要,但你可能想要一个以m4a结尾的文件名,而不是mp4作为一个只有音频的文件。