ios - 检查电话调用或 Skype 调用是否处于事件状态 iOS

标签 ios objective-c camera avfoundation

我使用 AVFoundation 进行摄像头 View ,如果电话或 Skype 通话处于事件状态,则我们无法使用摄像头。

我如何检查 AVFoundation 是否无法打开,然后我需要在不使用相机的情况下打开其他 View 。

如果我会检查这个 -

BOOL isPlayingWithOthers = [[AVAudioSession sharedInstance] isOtherAudioPlaying];

那么当任何其他应用程序播放音频时,它就不会打开。

有什么建议吗?

最佳答案

CTCallCenter对象有一个 currentCalls属性是 NSSet当前通话的数量。如果有调用,则 currentCalls 属性应为 != nil。

如果您想知道是否有任何调用实际上已连接,那么您必须遍历当前调用并检查 callState判断是否为CTCallStateConnected或不。

#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

-(bool)isOnPhoneCall {
    /*
     Returns YES if the user is currently on a phone call
     */

    CTCallCenter *callCenter = [[[CTCallCenter alloc] init] autorelease];
    for (CTCall *call in callCenter.currentCalls)  {
        if (call.callState == CTCallStateConnected) {
            return YES;
        }
    }
    return NO;
}

关于ios - 检查电话调用或 Skype 调用是否处于事件状态 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33950797/

相关文章:

ios - Angularjs http.jsonp iOS9 404

ios - 如何使自定义的 UITableViewCell xib 宽度适合设备宽度

ios - 如何在缩放后校准 Sprite 触摸位置

ios - 最佳实践 : Access properties

iphone - Objective-C中的高效循环

ios - 多行 UILabel 未正确换行

ios - 如何在 IOS 应用程序 obj-c 中单击登录按钮时捕获(创建 javascript 界面)Web View 响应 header ?

java - libGDXcamera.unproject() 返回 NaN

python opencv在使用第三方摄像头时无法显示视频

qt - 同时在两个窗口中显示相机