2011-12-11 21 views
8

我看了几个论坛,他们都不能提供令人满意的答案。玩一些backgorund音乐播放和录制视频

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

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

你有没有解决过这个问题? – shabbirv

+0

嘿你有你在这里做了什么的示例代码? – Jatin

回答

3

当您覆盖与* kAudioSessionProperty_OverrideCategoryMixWithOthers的SEESION类别*它采用了更小的扬声器上的设备的顶侧(除了前端摄像机)。要将常规扬声器用作输出设备,应改为重定向音频会话的输出路由。下面是实现这一

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 

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

与上述替换此代码,它会工作的代码段。您可以在苹果开发者平台上进一步参考Redirect Output Audio

+1

是否适用于ios 8? –