Je fais une application de base sur Objective-C et le framework AVFoundation, je veux détecter si la caméra intégrée pour Mac est utilisée par une autre application, j'ai réussi à le faire, mais renvoie toujours faux, même lorsque j'utilise l'appareil photo avec un autre logiciel.AVCaptureDevice isInUseByAnotherApplication renvoie toujours false
J'ai une fonction qui enveloppe ce code et est exécuté toutes les 2 secondes:
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for(AVCaptureDevice *camera in devices){
NSLog([camera isInUseByAnotherApplication] ? @"YES DEVICE BEING USED": @"DEVICE NOT BEING USED");
NSLog([camera isSuspended] ? @"YES DEVICE SUSPENDED": @"DEVICE NOT suspended");
NSLog([camera manufacturer]);
NSLog([camera localizedName]);
}
Le problème est, je reçois toujours le même résultat:
2017-01-06 13:02:24.657 Befective Agent[13749:175226] DEVICE NOT BEING USED
2017-01-06 13:02:24.658 Befective Agent[13749:175226] DEVICE NOT suspended
2017-01-06 13:02:24.658 Befective Agent[13749:175226] Apple Inc.
2017-01-06 13:02:24.658 Befective Agent[13749:175226] FaceTime HD Camera (Built-in)
EDIT
L'appareil photo qui apparaît sur le logiciel est le même que celui-ci, et je n'ai que l'appareil photo intégré du MacBook Pro.
Merci d'avance!
EDIT
Les logiciels que j'ai l'habitude d'utiliser l'appareil photo sont:
- Hangouts
- Skype
- RedBooth
- Slack
Comme En fait, lorsque je teste mon code, j'utilise l'appareil photo avec l'un des logiciels que j'ai mentionnés sur la question. –
L'utilisation de ces logiciels ne signifie pas qu'ils utilisent exclusivement l'appareil photo. Par exemple, lorsque vous utilisez des hangouts, vous pouvez toujours utiliser Skype pour indiquer que Hangout ou Skype n'utilise pas la caméra EXCLUSIVEMENT. –
Cela explique beaucoup, donc, il y a une autre façon de détecter si la caméra est utilisée? –