Как я могу определить, используется ли веб-камера в macOS с помощью Swift? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать простое приложение, которое сообщает мне, когда используются какие-либо камеры на моем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...