【问题标题】:Play and record video while playing some background music在播放一些背景音乐的同​​时播放和录制视频
【发布时间】:2011-12-11 10:04:01
【问题描述】:

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

我的愿望是能够在后台播放音乐的同时播放和录制视频。 在我找到的 sn-p 的帮助下,我设法做到了这一点。这是代码:

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

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

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

【问题讨论】:

  • 你解决过这个问题吗?
  • 你有你在这里所做的示例代码吗?

标签: ios


【解决方案1】:

当您使用 *kAudioSessionProperty_OverrideCategoryMixWithOthers* 覆盖观看类别时,它会使用设备顶部的较小扬声器(除了前端摄像头)。要将常规扬声器用作输出设备,您应该重定向音频会话的输出路由。下面是实现这个的代码sn-p

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;

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

用您上面的代码替换此代码,它将起作用。您可以在苹果开发者门户上进一步参考Redirect Output Audio

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多