在播放一些backgorund音乐时播放和录制video

我查看了几个论坛,他们都无法提供令人满意的答案。

我的愿望是能够在后台播放音乐时播放和录制video。 我设法在我发现的一个片段的帮助下做到了这一点。 这是代码:

AVAudioSession *session = [AVAudioSession sharedInstance]; session.delegate = self; NSError *error = nil; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; OSStatus propertySetError = 0; UInt32 allowMixing = true; propertySetError = AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryMixWithOthers, // 1 sizeof (allowMixing), // 2 &allowMixing // 3 ); [session setActive:YES error:&error]; 

问题是录音时,我只能通过耳机而不是普通扬声器听到背景音乐。

如何设置常规扬声器才能使录音会话不被中断?

提前致谢,

使用* kAudioSessionProperty_OverrideCategoryMixWithOthers *覆盖seesion类别时,它使用设备顶部的较小扬声器(除了前端摄像头)。 要将常规扬声器用作输出设备,您应该改为重定向音频会话的输出路径。 以下是实现此目的的代码片段

 UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; AudioSessionSetProperty ( kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride ); 

用上面的代码替换此代码,它将起作用。 您可以在Apple开发人员门户网站上进一步参考Redirect Output Audio 。