[swift] Swift에서 카메라로 골프 촬영하기

Swift를 사용하여 iOS 앱을 개발하고 있고, 골프 스윙 동작을 촬영하고 싶다면 이 기술블로그가 도움이 될 것입니다. 이 기술블로그에서는 Swift를 사용하여 카메라를 제어하고 골프 스윙 동작을 촬영하는 방법에 대해 다룰 것입니다.

카메라 액세스 권한 요청

우선 앱이 카메라에 액세스할 수 있는 권한을 얻어야 합니다. Info.plist 파일에 카메라 액세스에 대한 설명을 추가해야 합니다. 추가적으로 AVCaptureSession을 사용하여 앱에서 카메라에 접근할 수 있습니다.

import AVFoundation

AVCaptureDevice.requestAccess(for: .video) { success in
    if success {
        // 카메라 액세스 승인됨
    } else {
        // 카메라 액세스 거부됨
    }
}

카메라 미리보기

카메라를 통해 미리보기를 제공하려면 AVCaptureVideoPreviewLayer를 사용하여 카메라 화면을 보여줄 수 있습니다.

import AVFoundation
import UIKit

class CameraViewController: UIViewController {
    var previewLayer: AVCaptureVideoPreviewLayer?

    override func viewDidLoad() {
        super.viewDidLoad()

        let captureSession = AVCaptureSession()
        guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return }
        let videoInput: AVCaptureDeviceInput

        do {
            videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
        } catch {
            return
        }

        if (captureSession.canAddInput(videoInput)) {
            captureSession.addInput(videoInput)
        } else {
            return
        }

        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        previewLayer?.videoGravity = .resizeAspectFill
        previewLayer?.frame = view.layer.bounds
        view.layer.addSublayer(previewLayer!)

        captureSession.startRunning()
    }
}

동영상 녹화

카메라에서 동영상을 녹화하려면 AVCaptureMovieFileOutput을 사용하여 동영상을 캡처할 수 있습니다.

import AVFoundation

class CameraViewController: UIViewController {
    var captureSession: AVCaptureSession!
    var videoOutput: AVCaptureMovieFileOutput!
    // ...

    func startRecording() {
        let outputURL = // 저장할 파일 URL
        videoOutput.startRecording(to: outputURL, recordingDelegate: self)
    }

    func stopRecording() {
        videoOutput.stopRecording()
    }
}

요약

Swift를 사용하여 카메라를 제어하고 골프 스윙 동작을 촬영하는 방법에 대해 알아보았습니다. 카메라 액세스 권한을 요청하고, 카메라로부터 미리보기를 제공하며, 동영상을 녹화하는 방법을 다뤘습니다.

더 많은 자세한 정보는 Apple 공식 문서를 참고하세요.