5

我有一個視頻捕捉應用程序,我希望能夠在錄製音頻+視頻時播放背景音樂。AVAudioSession setCategory不工作

如果我將AVAudioSession類別設置爲PlayAndRecord,didFinishLaunchingWithOptions,我可以完成此操作。然而,每當相機的視圖進入或退出前景時,這會導致音頻出現故障,並且其顯然不可能擺脫:https://forums.developer.apple.com/message/74778#74778

如果我剛開始/停止時發生故障,我可以忍受這個故障錄製視頻,但這意味着當按下按鈕時,我需要將AVAudioSession類別從Ambient更改爲PlayAndRecord,這似乎也是不可能的。

如何更改AVAudioSession類別?

我嘗試這樣做:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 

但背景音樂停止錄製開始時。

下面這篇文章:AVCaptureSession and background audio iOS 7

我嘗試停用會話,然後設置類別:

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord 
     withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker 
       error:nil]; 
[session setActive:YES error:&error]; 

我也嘗試監聽AVAudioSessionRouteChangeNotification和停用在會議結束後設置在該處理程序的類別。但是當應用程序開始錄製時,背景音樂始終會關閉。

爲什麼我不能更改AVAudioSession類別?

+0

簡而言之,應用程序錄制不工作,而音樂......和你想要一起工作嗎? –

+0

是的,但它需要在環境模式下啓動 – Cbas

回答

0

請這一類

嘗試AVAudioSessionCategoryMultiRoute

或檢查兩類 AVAudioSessionCategoryPlayAndRecord | AVAudioSessionCategoryRecord

相關問題