播放一些背景音乐时播放和录制视频

时间:2011-12-11 10:04:02

标签: ios

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

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

    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];

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

如何设置常规扬声器工作,以便录音会话不会中断?

1 个答案:

答案 0 :(得分:3)

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

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;

AudioSessionSetProperty ( 
    kAudioSessionProperty_OverrideAudioRoute,                         
    sizeof (audioRouteOverride),                                      
    &audioRouteOverride                                               
); 

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