AVAudioRecorder:iOS9上iPad4的音频录制设置

AVAudioRecorder:iOS9上iPad4的音频录制设置,ios,ios9,avaudiorecorder,Ios,Ios9,Avaudiorecorder,我正在使用的一个应用程序录制音频,在从iOS8更新到iOS9后,它开始无法在iPad4上录制 目前使用的记录器设置包括: audioSegmentURL = ... (a URL with fileextension @"mp4"); recorderSettings = @{ AVFormatIDKey: @(kAudioFormatMPEG4AAC), AVEncoderAudioQualityKey: @(AVAudioQ

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

目前使用的记录器设置包括:

    audioSegmentURL = ... (a URL with fileextension @"mp4");
    recorderSettings = @{ AVFormatIDKey: @(kAudioFormatMPEG4AAC),
                          AVEncoderAudioQualityKey: @(AVAudioQualityMin),
                          AVEncoderBitRateKey: @(8),
                          AVNumberOfChannelsKey: @(1),
                          AVSampleRateKey: @(11025.0)
                          };
这是
音频录像机的初始化:

NSError *err;
AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc] initWithURL:audioSegmentURL settings:recorderSettings error:&err];
此调用似乎成功,
err
nil

调用
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上似乎失败了

合成使用具有多个
AVMutableCompositionTrack
s的
AVMutableComposition
,一个
avassetextortsession
,输出文件类型设置为
AVFileTypeAppleM4A


M4A
是否与iOS9 iPad4上的
IMA4
不兼容?

您的比特率在第一个录制设置字典中看起来不正确。尝试删除AvencoderBaritate键。我不知道这是否重要,但对于仅包含音频的文件,您可能需要以m4a而不是mp4结尾的文件名。

您的比特率在第一个录制设置字典中看起来不正确。尝试删除AvencoderBaritate键。我不知道这是否重要,但对于仅包含音频的文件,您可能希望文件名以m4a结尾,而不是以mp4结尾。

谢谢您的提示-删除比特率时,事情看起来更有希望。我以前也尝试过M4A,但这会导致后续处理步骤出现问题。如果多个问题相互影响,我需要一个接一个地解决,我不会感到惊讶。测试表明,自iOS9以来,比特率键确实造成了问题。删除坏值使其工作。感谢您的提示-删除比特率时,事情看起来更有希望。我以前也尝试过M4A,但这会导致后续处理步骤出现问题。如果多个问题相互影响,我需要一个接一个地解决,我不会感到惊讶。测试表明,自iOS9以来,比特率键确实造成了问题。删除坏值使其正常工作。