AVAudioRecorder设置不会对输出文件生效

我正在使用AVAudioRecorder来logging并保存到一个audio.m4a文件与这些设置:

NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init]; [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey]; [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey]; [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitRateKey]; [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; [recordSetting setValue:[NSNumber numberWithInt:8] forKey:AVLinearPCMBitDepthKey]; 

但是当我使用一个软件来读取audio.m4a文件的属性时,我得到了这些:

比特率:64KBps

频道:2

那么这是否意味着上述设置不会影响输出文件,因为显然,我将其比特率设置为16,并将通道设置为1.我错过了这些设置上的一些内容?

问题是不是每一个设置都是合法的,非法设置默默地失败。 所以在这种情况下,16的比特率太低了。 从某种意义上说,这个系统正在帮你一个忙。 而不是barfing,它正在录制,但它取代了你给的合法设置。