This Swift example demonstrates how to initialize and run the default video camera on an iOS/macOS device using Apple's AVFoundation
framework. It checks for user permission to access the camera, sets up an input from the video device, configures a video output, and starts the camera session.
import AVFoundation
class CameraClass {
var session = AVCaptureSession()
var videoDeviceInput: AVCaptureDeviceInput?
init() {
prepare()
}
func prepare() {
AVCaptureDevice.requestAccess(for: .video) { granted in
if granted {
print("Camera access granted")
DispatchQueue.main.async {
// You can safely update UI here
}
} else {
print("Denied")
}
}
guard let camera = AVCaptureDevice.default(for: .video) else {
print("No camera found")
return
}
do {
let input = try AVCaptureDeviceInput(device: camera)
if session.canAddInput(input) {
session.addInput(input)
videoDeviceInput = input
}
let output = AVCaptureVideoDataOutput()
if session.canAddOutput(output) {
session.addOutput(output)
}
session.startRunning()
} catch {
print("Error setting up camera: \\(error)")
}
}
}
DispatchQueue.main.async
to update UI accordingly.AVCaptureVideoPreviewLayer
to preview live video in a view.