每当我开始使用麦克风输入的AVCaptureSession作为输入,它将取消当前运行的任何背景音乐(例如iPod音乐).如果我注释掉
添加音频输入的行,则会继续播放背景音频.
有没有人知道用麦克风录制视频剪辑的方法,同时继续允许背景音频播放?当您尝试录制视频并且正在播放音乐时,也会出现错误.
A试图这样做:
- [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
- UInt32 doSetProperty = 1;
- AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers,sizeof(doSetProperty),&doSetProperty);
- [[AVAudioSession sharedInstance] setActive: YES error: nil];
但是,“AudioSessionSetProperty”已被弃用:在iOS 7.0中首先被弃用
所以我试着这样做:
- AVAudioSession *audioSession = [AVAudioSession sharedInstance];
- NSError *setCategoryError = nil;
- [audioSession setCategory:AVAudioSessionCategoryPlayback
- withOptions:AVAudioSessionCategoryOptionMixWithOthers
- error:&setCategoryError];
- [audioSession setActive:YES error:nil];
但终于没有了.感谢帮助!
您可以使用AVAu
dioSessionCategoryOptionMixWithOthers.
例如,
- AVAudioSession *session = [AVAudioSession sharedInstance];
- [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
之后,您可以与AVCaptureSession同时使用AVAudioPlayer.
然而,上述代码导致非常低的音量.
如果您想要正常音量,请使用AVAudioSessionCategoryOptionDefaultToSpeaker与AVAudioSessionCategoryOptionMixWithOthers如下,
- [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers|AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
这很顺利