2013-08-26 5 views
0

Мне удалось настроить AVAudiorecorder для записи, но я хотел бы сохранить запись в каталоге документов, чтобы прослушать ее позже. Я попытался это:Сохранение AVAudioRecording по пути

- (void) audioRecorderDidFinishRecording:(AVAudioRecorder *)avrecorder successfully:(BOOL)flag{ 

ButtonStopRecording.hidden = YES; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"audioFile.ext"]; // Where ext is the audio format extension you have recorded your sound 
[avrecorder.data writeToFile:filePath atomically:YES]; 

} 

но есть ошибка в

avrecorder.data 

Как я могу решить эту проблему?

+0

К настоящему времени вы должны знать, что если вы разместите вопрос об ошибке, вы должны включить полную ошибку в вопрос. – rmaddy

ответ

0

Попробуйте доступ к файлу с помощью

avrecorder.url 

Это предполагает, что вы настроили рекордер правильно, когда вы начинаете record

Что-то вроде этого ...

NSString *temnpVoiceFile = [NSString pathWithComponents:[NSArray arrayWithObjects:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject], @"tempVoice.caf", nil]]; 

// We need to update the file generator 
NSURL *soundFileURL = [NSURL fileURLWithPath:temnpVoiceFile]; 

NSError *error = nil; 

// Instantiate an audio recorder. 
self.audioRecorder = [[[AVAudioRecorder alloc] initWithURL:soundFileURL settings:_recordSettings error:&error] autorelease]; 
NSAssert1(!error, @"error creating audio file = %@", error); 

BOOL fileSuccess = [_audioRecorder prepareToRecord]; 

NSAssert(fileSuccess, @"audio recorder could not be prepared."); 
[_audioRecorder record]; 

Let я знаю, если вам нужна дополнительная информация.

0

Данных нет данных для AVAudioRecorder. Вам просто нужно установить местоположение для хранения записанного звука при запуске AVAudioRecorder. Просто установите его в каталог документов при настройке вашего рекордера.

Заканчивать яблоневых документы на AVAudioRecorder

0
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"audioFile.ext"]; // Where ext is the audio format extension you have recorded your sound 
NSData *data=[NSData dataWithContentsOfURL:avrecorder.url]; 
    [data writeToFile:soundFilePath atomically:YES]; 
[data writeToFile:filePath atomically:YES]; 

Я думаю, это будет полезно для вас.

Смежные вопросы