Можно ли записывать звук с помощью 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 очень приветствуется ;o)
AVAudioPlayer
в качестве источника входного сигнала для записи? - person Robert   schedule 15.05.2013