Запись звука во время воспроизведения звука

Можно ли записывать звук с помощью AVAudioRecorder и одновременно воспроизводить другой аудиофайл с помощью AVAudioPlayer?

1 ответ

Это возможно с iOS 6. У меня проблемы с этим в iOS 5.x. Нет информации о версии до 5.x.

Чтобы сделать это, AudioSession-категория должна быть установлена ​​в AVAudioSessionCategoryPlayAndRecord

NSError *error = nil;
NSLog(@"Setting category for AudioSession to AVAudioSessionCategoryPlayAndRecord");
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if (!success) {
    NSLog(@"Error setting category for AudioSession:\n\terror: %@", error.localizedDescription);
}

AVAudioRecorder настроен так:

NSString *fileToRecordPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"record.m4a"];
NSURL *fileToRecordURL = [NSURL fileURLWithPath:fileToRecordPath];
NSDictionary *settings = @{AVFormatIDKey: [NSNumber numberWithInt:kAudioFormatMPEG4AAC],
                           AVSampleRateKey: [NSNumber numberWithFloat:44100.0],
                           AVNumberOfChannelsKey: [NSNumber numberWithInt:1]};
NSError *error = nil;

AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc] initWithURL:self.fileURL settings:settings error:&error];
 if (!audioRecorder) {
    NSLog(@"Error initializing AVAudioRecorder:\n\terror: %@", error.localizedDescription);
}
audioRecorder.delegate = self;
[audioRecorder prepareToRecord];

При воспроизведении другого аудио-файла (того же формата, m4a) в AVAudioPlayer все нормально работает в iOS 6. В iOS 5 поведение странное. Когда воспроизведение аудио или воспроизведение звука приостановлено, запись не может быть начата. При начале записи, во-первых, возможно одновременное воспроизведение (другого файла).

После некоторых поисков я не смог найти способ правильно это настроить. Хотя я не могу поверить, это ошибка в iOS, но отсутствует настройка.

Так что это работает с iOS 6, но помощь по проблеме iOS 5 высоко ценится; о)

Другие вопросы по тегам