Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AVCaptureSession addInput causing glitch in background audio

I'm making a video capturing iOS app and I want to be able to record audio from the microphone while allowing background music to play. I can do all of this but the background audio skips (pauses briefly) whenever the view with the camera enters and exits the foreground. I have isolated the bug to AVCaptureSession addInput:

AVCaptureSession session = [[AVCaptureSession alloc] init];
session.automaticallyConfiguresApplicationAudioSession = NO;

AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
AVCaptureDeviceInput *audioDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:audioDevice error:nil];

// this line causes the background music to skip
[session addInput:audioDeviceInput];

How can I prevent adding microphone input from affecting the background audio?

fyi - in didFinishLaunchingWithOptions I set the AVAudioSession Category:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                 withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker
                                       error:nil];
like image 248
Cbas Avatar asked Oct 18 '22 15:10

Cbas


1 Answers

Apparently there is no workaround. https://forums.developer.apple.com/message/74778#74778

like image 87
Cbas Avatar answered Nov 11 '22 16:11

Cbas