Я пытаюсь создать простое приложение, которое сообщает мне, когда используются какие-либо камеры на моем Ma c (встроенные или другие).
Мне еще не удалось найти никаких методов, которые скажите мне, что этот и следующий код (работающий на игровой площадке Xcode 11 с использованием Swift 5.2) всегда возвращают одни и те же значения независимо от того, используется ли моя внешняя камера в Zoom или нет:
import AVFoundation
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .externalUnknown], mediaType: .video, position: .unspecified)
let captureSession = AVCaptureSession()
for device in discoverySession.devices {
print(device.localizedName)
let videoInput = try AVCaptureDeviceInput(device: device)
let available: String = captureSession.canAddInput(videoInput) ? "true": "false"
print("\tConnected: \(device.isConnected)")
print("\tSuspended: \(device.isSuspended)")
print("\tAvailable: \(available)")
print("\tIs In Use: \(device.isInUseByAnotherApplication)")
print()
}
И вот результат, который я получить независимо от того, использует ли приложение камеру или нет:
FaceTime HD Camera (Built-in)
Connected: true
Suspended: true
Available: true
Is In Use: false
C922 Pro Stream Webcam #4
Connected: true
Suspended: false
Available: true
Is In Use: false