2010-05-18 14 views
5

Ich mag einen AVAudioRecorder mit einem AAC-Dateiformat initialisieren, aber es funktioniert nicht ...Initialisierung von AVAudioRecorder mit aac

Was stimmt nicht mit dem folgenden Code?

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

diese Zuordnung nur nil ...

Jede mögliche Hilfe geschätzt ...!

Antwort

-1

[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC_HE_V2] forKey:AVFormatIDKey]; Das Format dafür ist eine Aufzählung. Versuchen Sie, in die Aufzählungen zu schauen. Es gibt keinen formatIDKey für 'aac'. Es hat aacp und andere.

+0

Es gibt einen 'aac' 'formatIDKey': kAudioFormatMPEG4AAC. – memmons

-1

Verwenden Sie die folgende Einstellung, um die Stimme in einer AAC-Datei aufzunehmen.

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

Apple Lossless Format ist _nicht_ AAC. – memmons

1

iOS 5 können Sie AAC aufzuzeichnen. Versuchen Sie dies mit "kAudioFormatMPEG4AAC" für den AVFormatIDKey.

3

jede Zeile über PCM entfernen und Änderungslinie mit formatIDKey zu

[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 

Btw, es geeignetere ist m4a als Erweiterung zu verwenden, anstatt aac, weil aac-Erweiterung für MPEG2 AAC-Format verwendet wurde.