Мне нужно записать звук и передать его напрямую в NSData. Я попытался сделать то же самое с AVAudioRecorder, но, к сожалению, он сохраняет запись в файл, и процесс занимает много времени для сохранения звука в файле и последующего чтения его в NSData, пожалуйста, помогите с некоторым кодированием, где я мог бы сохранить аудио непосредственно в объект NSData, заранее спасибо.
Мой код записи:
`
printf("\nstart recording ...");
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:nil];
NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10];
[recordSettings setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[recordSettings setValue:[NSNumber numberWithFloat:11400.0] forKey:AVSampleRateKey];
[recordSettings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
[recordSettings setValue :[NSNumber numberWithInt:8] forKey:AVLinearPCMBitDepthKey];
[recordSettings setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[recordSettings setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
NSArray *arrayTempDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *soundFilePath = [[arrayTempDir objectAtIndex:0] stringByAppendingString: @"/sound.caf"];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:soundFilePath error:nil];
NSLog(@"\n%@",soundFilePath);
NSURL *newURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
NSError *error = nil;
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:newURL settings:recordSettings error:&error];
NSLog(@"%@",error);
[audioRecorder setDelegate:self];
if ([audioRecorder prepareToRecord] == YES)
{
audioRecorder.meteringEnabled = YES;
[audioRecorder record];
[NSTimer scheduledTimerWithTimeInterval:RECORDING_METERING target:self selector:@selector(stopRecording) userInfo:nil repeats:NO];
}
[recordSettings release];
`