AVAudioSession setCategory无法正常工作
我有一个video捕捉应用程序,我希望能够在录制音频+video时播放背景音乐。
如果我在didFinishLaunchingWithOptions
中将AVAudioSession
类别设置为AVAudioSession
我可以完成此操作。 但是,每当相机的视图进入或退出前景时,这会导致音频出现故障,并且显然无法摆脱: https : //forums.developer.apple.com/message/74778#74778
如果只是在我开始/停止录制video时发生故障,我可以忍受故障,但这意味着我需要在按下按钮时将AVAudioSession
类别从Ambient
更改为AVAudioSession
,这似乎也是不可能的。
如何更改AVAudioSession
类别?
我试过这个:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
但录制开始时背景音乐停止。
以下post: AVCaptureSession和背景音频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
类别?
请尝试此类别
AVAudioSessionCategoryMultiRoute
或检查两个类别AVAudioSessionCategoryPlayAndRecord | AVAudioSessionCategoryRecord