2010-05-18 80 views
5

我要初始化與AAC文件格式AVAudioRecorder,但它不工作...AVAudioRecorder的初始化與AAC

哪些錯誤與下面的代碼?

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]; 

這種分配只返回零...

任何幫助將不勝感激...!

回答

-1

[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC_HE_V2] forKey:AVFormatIDKey]; 這是一個枚舉的格式。嘗試查看枚舉。 'aac'沒有formatIDKey。它有aacp和其他。

+0

有一個'aac''formatIDKey':kAudioFormatMPEG4AAC。 – memmons 2011-08-17 22:39:04

-1

只需使用以下設置在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];
+1

蘋果無損格式不適用於AAC。 – memmons 2011-08-17 22:37:06

1

的iOS 5可以讓您錄製AAC。嘗試使用AVFormatIDKey的「kAudioFormatMPEG4AAC」。

3

刪除有關PCM的每一行,並與formatIDKey變線

[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 

順便說一句,這是更恰當使用m4a作爲一個擴展,而不是aac,因爲用於MPEG2 AAC格式AAC擴展。