2013-05-10 5 views
0

У меня есть приложение, которое использует AVAudioRecorder и AVAudioPlayer. Он записывает и играет отлично, но иногда записи обрезаются прямо вокруг отметки в одну минуту. Это происходит не все время и когда это происходит, оно по-прежнему действует подобно записи (audioRecorderEncodeErrorDidOccur не вызывается, а audioRecorderDidFinishRecording делает, когда пользователь останавливает запись). Сам звуковой файл усечен менее чем за минуту.AVAudioRecorder отключает записи

Вот кодирование я использую (soundFileURL является appsdocdir/somethingrandom.m4a Файл и имя файла получить создан правильно):

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

NSError *error = nil; 
self->audioRecorder = nil; 
audioRecorder = [[AVAudioRecorder alloc] 
       initWithURL:soundFileURL 
       settings:recordSetting 
       error:&error]; 

if (error) 
{ 
    NSLog(@"error: %@", [error localizedDescription]); 

} else { 
    audioRecorder.delegate = self; 
    [audioRecorder prepareToRecord]; 
    audioRecorder.meteringEnabled = YES; 
} 

Я думаю, что его проблема кодирования, потому что, если я смотрю на журнал устройства Я вижу это:

10 мая 10:17:23 т-iPhone mediaserverd [39]: 10: 17: 23,451 < 0x282f000> AudioConverterNew вернулся -50

мая 10 10:17:23 трет-iPhone mediaserverd [39]: 10: 17: 23,453 < 0x282f000> IO_ChangeIOFormat: ошибка -50

10 мая 10:17:23 т-iPhone mediaserverd [39]: 10:17 : 23,463 < 0x282f000> Queue_ChangeIOFormat: не удалось (-50)

EDIT: Это был вопрос, что soundFileURL было. Я кратко упомянул об этом выше, но вот фактический код. Файл и имена файлов выглядят правильно после записи:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MMMMdyyyyA"]; 
NSString *recordDate = [formatter stringFromDate:[NSDate date]]; 

filename = [[NSString alloc] initWithFormat:@"%d-%@.m4a", idNumber, recordDate]; 
NSArray *dirPaths; 
NSString *docsDir; 

dirPaths = NSSearchPathForDirectoriesInDomains(
               NSDocumentDirectory, NSUserDomainMask, YES); 
docsDir = [dirPaths objectAtIndex:0]; 
NSString *soundFilePath = [docsDir 
          stringByAppendingPathComponent:filename]; 
soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 
+0

Вы тестирование на устройстве? – matt

+0

Что у вас есть в качестве soundFileURL? –

+0

matt: Да. Тестирование на iPhone 5 – tharris

ответ