2016-06-22 114 views
8

因此,我正在研究播放背景音频(来自Spotify或Apple Music)的视频捕获应用程序,并且遇到了一个小问题,即在音频打开我的应用程序时发生小音频中断正在播放。iOS视频应用程序的背景音频

下面是我对允许后台音频播放(位于我didFinishLaunchingWithOptionsAppDelegate类:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker |  AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

任何线索,以阻止该开始中断谢谢!

编辑


我应该在设置AVAudioSession I我正在设置我的AVCaptureSession。我初始化它然后设置属性。

self.session.usesApplicationAudioSession = YES; 
self.session.automaticallyConfiguresApplicationAudioSession = NO; 
+1

而是在'nil'路过为什么不使用'NSError',看看是否被传递回错误错误的? – JAL

+0

@JAL不会出错 –

+0

您是否注意到了Spotify中的这种中断? – NeverHopeless

回答

2

我认为中断的原因是你在每种情况下都更新类别。只有在需要时才可以使用以下功能来检查和更新类别。

-(BOOL) checkAndUpdateCategory { 
    NSError *error; 
    AVAudioSession *session = [AVAudioSession sharedInstance]; 
    BOOL result = [session.category isEqualToString:AVAudioSessionCategoryPlayAndRecord]; 
    if(!result) { 
     result = [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error]; 
     if(error) { 
      //Handle Error 
      NSLOG(@"Error:%@", error); 
     } 
    } 
    return result; 
} 
+0

这没有工作:(仍然得到那个中断 –

+0

嗯,你知道什么是'session.category'值当你打开应用程序? –

+0

它保持AVAudioSessionCategoryPlayAndRecord –