2013-04-10 7 views
3

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

+0

Вы хотите использовать воспроизведение с 'AVAudioPlayer' в качестве источника входного сигнала Фро записи? – Robert

ответ

0

Возможно с 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, но недостающая настройка.

Так это работает с прошивкой 6, но помочь в 5 выпуске IOS ценится много; о)

+0

где вы воспроизводите аудио в этом коде? –

+0

Не знаю. Это настройка AVAudioSessionCategory и AVAudioRecorder. Просто используйте AVAudioPlayer, как описано. Мне кажется, что необычное поведение в iOS 5 описано ниже. –

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