Iphone 使用aac初始化AVAudioRecorder

Iphone 使用aac初始化AVAudioRecorder,iphone,audio,avaudioplayer,avaudiorecorder,Iphone,Audio,Avaudioplayer,Avaudiorecorder,我想用aac文件格式初始化AVAudioRecorder,但它不起作用 以下代码有什么问题 soundFilePath = [soundFilePath stringByAppendingPathExtension:@"aac"]; NSURL *url = [NSURL fileURLWithPath:soundFilePath isDirectory:FALSE]; NSMutableDictionary *recordSetting = [[NSMutableDictionary allo

我想用aac文件格式初始化AVAudioRecorder,但它不起作用

以下代码有什么问题

soundFilePath = [soundFilePath stringByAppendingPathExtension:@"aac"];
NSURL *url = [NSURL fileURLWithPath:soundFilePath isDirectory:FALSE];
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt: 'aac '] forKey:AVFormatIDKey];                                     //General Audio Format Settings 
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];                                 //          "
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];                                  //          "
[recordSetting setValue:[NSNumber numberWithInt: 32] forKey:AVLinearPCMBitDepthKey];                                //Linear PCM Format Settings 
[recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];                             //          "
[recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];                                 //          "
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityLow] forKey:AVEncoderAudioQualityKey];                //Encoder Settings 
[recordSetting setValue:[NSNumber numberWithInt:96] forKey:AVEncoderBitRateKey];                                    //          "
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitDepthHintKey];                               //          "
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityLow] forKey:AVSampleRateConverterAudioQualityKey];    //Sample Rate Conversion Settings

_recorder = [[AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:nil];
此分配只返回零

任何帮助都将不胜感激


[recordSetting setValue:[NSNumber Number whint:KaudiofFormatMPEG4AAC_HE_V2]forKey:AVFormatIDKey]

其格式为枚举。试着调查一下统计数字。“aac”没有formatIDKey。它有aacp和其他功能。

只需使用以下设置即可在aac文件中录制人声

    recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatAppleLossless] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
    [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
    [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
    [recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
    [recordSetting setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

没有可记录到AAC的设置,但您可以动态转换:


iOS 5允许您录制到AAC。使用AVFormatIDKey的“kAudioFormatMPEG4AAC”尝试此操作。

删除关于PCM的每一行,并将使用
formatIDKey的行更改为

[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,

顺便说一句,使用
m4a
作为扩展比使用
aac
更合适,因为aac扩展用于MPEG2 aac格式

那个API在中断上有小故障!