Добавление аудиовхода в AVCaptureSession останавливает AVPlayer

Я разрабатываю музыкальное приложение, в котором нотная запись отображается через видеофайл m4v, воспроизводимый с помощью AVPLayer, а AVCaptureSession используется для предварительного просмотра и записи как видео, так и звука исполнителя, играющего под партитуру.

К сожалению, хотя AVCaptureVideoPreviewLayer отображает живое видео, пока отображается музыкальная нотация, когда я пытаюсь добавить аудиовход в AVCaptureSession, AVPlayer приостанавливается.

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

Я пытаюсь сделать невозможное, или есть способ одновременно воспроизводить видео / аудио и записывать видео / аудио.

Насколько я понимаю, Skype и Facetime делают похожие (хотя и не совсем одинаковые) вещи.


person LeFlaneur    schedule 30.05.2011    source источник


Ответы (3)


Установите категорию аудиосессии в правильное свойство PlayandRecord. Также установите для параметра allowmixwithothers значение yes.

person nova    schedule 01.11.2012

Попробуй это. Я только что сделал это для другого проекта, и он работает

-(IBAction)beepingSound2
{
    //do this so that we can hear the scream and record the movie too
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
    UInt32 doSetProperty = 1;

    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);

    [[AVAudioSession sharedInstance] setActive: YES error: nil];

    [myAudioPlayer1 stop];
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"long_beep" ofType: @"mp3"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];    
    myAudioPlayer1 = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [myAudioPlayer1 play];
}
person Sam B    schedule 26.02.2013

У меня была такая же проблема, но, похоже, она исправлена ​​в iOS 7. До iOS 7 я мог заставить AVAudioRecorder работать одновременно с AVPlayer, но не AVCaptureSession со звуком.

person user1055568    schedule 05.12.2013