所以我正在开发一个播放背景音频的视频捕捉应用程序(来自Spotify或Apple Music),我遇到一个小问题,当我在播放音频时打开我的应用程序时会出现小的音频中断.
这是我允许播放背景音频的内容(位于我的AppDelegate类中的didFinishLaunchingWithOptions中:
[[AVAu@R_404_410@Session sharedInstance] setCategory:AVAu@R_404_410@SessionCategoryPlayAndRecord withOptions:AVAu@R_404_410@SessionCategoryOptionDefaultToSpeaker | AVAu@R_404_410@SessionCategoryOptionMixWithOthers error:nil]; [[AVAu@R_404_410@Session sharedInstance] setActive:YES error:nil];
阻止开始中断的任何线索?谢谢!!
编辑
我还应该在设置AVAu@R_404_410@Session后提及我正在设置我的AVCaptureSession.我初始化它然后设置属性.
self.session.usesApplicationAu@R_404_410@Session = YES; self.session.automaticallyConfiguresApplicationAu@R_404_410@Session = NO;
解决方法
我认为中断的原因是你在每种情况下都在更新类别.您可以使用以下功能仅在需要时检查和更新类别.
-(BOOL) checkAndUpdateCategory { NSError *error; AVAu@R_404_410@Session *session = [AVAu@R_404_410@Session sharedInstance]; BOOL result = [session.category isEqualToString:AVAu@R_404_410@SessionCategoryPlayAndRecord]; if(!result) { result = [session setCategory:AVAu@R_404_410@SessionCategoryPlayAndRecord withOptions:AVAu@R_404_410@SessionCategoryOptionDefaultToSpeaker | AVAu@R_404_410@SessionCategoryOptionMixWithOthers error:&error]; if(error) { //Handle Error NSLOG(@"Error:%@",error); } } return result; }