我查看了几个论坛,他们都无法提供令人满意的答案。
我希望能够在后台播放音乐时播放和录制视频。 我设法在我发现的一个片段的帮助下做到了这一点。这是代码:
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];
问题是录音时,我只能通过耳机而不是普通扬声器听到背景音乐。
如何设置常规扬声器工作,以便录音会话不会中断?
答案 0 :(得分:3)
使用* kAudioSessionProperty_OverrideCategoryMixWithOthers *覆盖seesion类别时,它使用设备顶部较小的扬声器(除了前端摄像头)。要将常规扬声器用作输出设备,您应该改为重定向音频会话的输出路径。以下是实现此目的的代码片段
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute,
sizeof (audioRouteOverride),
&audioRouteOverride
);
将此代码替换为您的代码,它将起作用。您可以在Apple开发人员门户网站上进一步参考Redirect Output Audio。