我具有使用AVFoundation的摄像头视图,并且如果有电话或Skype通话处于 Activity 状态,则无法使用摄像头。
我如何检查AVFoundation是否无法打开,那么我需要在不使用相机的情况下打开其他视图。
如果我会检查这个-
BOOL isPlayingWithOthers = [[AVAudioSession sharedInstance] isOtherAudioPlaying];
那么当任何其他应用播放音频时,它将不会打开。
有什么建议 ?
最佳答案
CTCallCenter
对象具有currentCalls
属性,该属性是当前调用的NSSet
。如果有 call ,则currentCalls属性应为!= nil。
如果您想知道实际上是否有任何 call 连接,则必须遍历当前 call 并检查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;
}