如何阻止Avaudiosession停用?

时间:2016-05-09 19:10:09

标签: ios objective-c voip quickblox avaudiosession

我想通过扬声器播放一首歌,同时能够使用Quickblox接收视频通话。

我的音频率已经搞砸了。 而且更大的问题是当呼叫结束时quickblox框架将音频会话设置为停用状态。即   [Avaudiosession sharedInstance] setActive:NO ....

如何阻止这种情况发生?

或者是否有办法可以处理上述情况。??

我已经通过谷歌阅读了一个月了,仍然没有找到任何合适的答案或任何指导方针。 任何人都可以帮我解决这个问题/ ??

1 个答案:

答案 0 :(得分:1)

首先,要允许AVAudioSession与其他AVAudioSessions合作,您需要在初始化时设置选项AVAudioSessionCategoryOptionMixWithOthers

NSError *sessionError = NULL;
    BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                                    withOptions:AVAudioSessionCategoryOptionMixWithOthers
                                                          error:&sessionError];

    if(!success) {
        NSLog(@"Error setting category Audio Session: %@", [sessionError localizedDescription]);
    }

要处理中断(呼叫,警报等等),您应该设置一个观察员来中断NSNotificationCenter的中断,以便您能够处理{{{1}的激活/停用1}}如有必要:

AVAudioSession

NSNotification将带有中断类型和密钥:

[[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(handleAudioSessionInterruption:)
                                                     name:AVAudioSessionInterruptionNotification
                                                   object:[AVAudioSession sharedInstance]];