获取MacOS中所有已连接摄像机的列表

问题描述 投票:0回答:1

我有一个基本的音频/视频捕获会话,这是我正在使用的代码的简化版。

var capSession = AVCaptureSession()
capSession.sessionPreset = .high

let videoDevice = AVCaptureDevice.default(for: .video)
let audioDevice = AVCaptureDevice.default(for: .audio)

let videoInput = try? AVCaptureDeviceInput(device: videoDevice!)
let audioInput = try? AVCaptureDeviceInput(device: audioDevice!)

capSession.addInput(videoInput!)
capSession.addInput(audioInput!)

capSession.startRunning()

我想要的是能够通过MacBook上选定的输出设备实时听回音频。请注意,我需要MacOS而非iOS的帮助。

我正在努力寻找有关如何实现此目标的任何信息。有谁能指出我正确的方向?

swift macos avfoundation
1个回答
0
投票

在macOS 10.15和更高版本中,如果要获取macOS中所有已连接摄像机的列表,请使用AVCaptureDevice.DiscoverySession

let devices: [AVCaptureDevice]

if #available(OSX 10.15, *) {
    devices = AVCaptureDevice
        .DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .externalUnknown], mediaType: .video, position: .unspecified)
        .devices
} else {
    devices = AVCaptureDevice.devices()
        .filter { $0.hasMediaType(.video) }
}

如您所见,在先前的macOS版本中,我们没有DiscoverySession,因此,我们先获取所有设备,然后过滤支持视频的设备。

© www.soinside.com 2019 - 2024. All rights reserved.