我查看了几个论坛,他们都无法提供令人满意的答案.
我的愿望是能够在后台播放音乐时播放和录制视频.
我设法在我发现的一个片段的帮助下做到了这一点.这是代码:
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.