AVCaptureSession addInput causing glitch in backgr

2019-02-17 19:11发布

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];

1条回答
对你真心纯属浪费
2楼-- · 2019-02-17 19:30
登录 后发表回答