2016-06-22 112 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 –