我有一个基本的音频/视频捕获会话,这是我正在使用的代码的简化版。
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的帮助。
我正在努力寻找有关如何实现此目标的任何信息。有谁能指出我正确的方向?
在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
,因此,我们先获取所有设备,然后过滤支持视频的设备。