[已解决] AVAudioRecorder 录音,编码问题

大家好,我想用AVAudioRecorder实现录音回放功能,其中

        NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];

        [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAMR] forKey:AVFormatIDKey];

        [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];

        [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];


        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,

                                                             NSUserDomainMask, YES);

        NSString *documentsDirectory = [paths objectAtIndex:0];

        recordedTmpFile = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"test%d.%@",01, @"caf"]]];

        recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error];

        [recorder setDelegate:self];

        [recorder prepareToRecord];

        [recorder record];



红色部分代码,iphone sdk只支持几种编码格式,当然不包括
kAudioFormatAMR 我想知道,录音用什么格式,能够保证音效的情况下,使录音文件尽量小啊?

下面是一些iPhone OS支持的音频回放格式:

AAC
HE-AAC
AMR (Adaptive Multi-Rate,是一种语音格式)
ALAC (Apple Lossless)
iLBC (互联网Low Bitrate Codec,另一种语音格式)
IMA4 (IMA/ADPCM)
线性PCM (无压缩)
µ-law和a-law
MP3 (MPEG-1 音频第3层)
下面是一些iPhone OS支持的音频录制格式:

ALAC (Apple Lossless)
iLBC (互联网Low Bitrate Codec,用于语音)
IMA/ADPCM (IMA4)
线性PCM
µ-law和a-law
下面的列表总结了iPhone OS如何支持单路或多路音频格式:

线性PCM和IMA4 (IMA/ADPCM) 在iPhone OS上,您可以同时播放多路线性PCM或IMA4声音,而不会导致CPU资源的问题。这一点同样适用于AMR和iLBC语音品质格式,以及µ-law和a-law压缩格式。在使用压缩格式时,请检查声音的品质,确保满足您的需要。
AAC、MP3、和ALAC (Apple Lossless) AAC、MP3、和ALAC声音的回放可以使用iPhone OS设备上高效的硬件解码,但是这些编解码器共用一个硬件路径,通过硬件,设备每次只能播放上述格式的一种。
AAC、MP3、和ALAC的回放共用同一硬件路径的事实会对“合作播放”风格的应用程序(比如虚拟钢琴)产生影响。如果用户在iPod程序上播放上述三种格式之一的音频,则您的应用程序—如果要和该音频一起播放声音—需要使用软件解码。

原文地址:https://www.cnblogs.com/linyawen/p/2643450.html