티스토리 뷰

iOS

[iOS] AVCaptureSession 번역

Kim_Baechu 2021. 10. 22. 14:43

캡처 작업을 관리하고 입력 장치에서 캡처 출력으로 이동하는 데이터 흐름을 조정하는 개체

 

Declaration

class AVCaptureSession : NSObject

Overview

실시간 캡처를 수행하려면 AVCaptureSession 개체를 인스턴스화하고 적절한 입력 및 출력을 추가합니다.

 다음 코드 조각은 오디오를 녹음하도록 캡처 장치를 구성하는 방법을 보여 줍니다.

// Create the capture session.
let captureSession = AVCaptureSession()

// Find the default audio device.
guard let audioDevice = AVCaptureDevice.default(for: .audio) else { return }

do {
    // Wrap the audio device in a capture device input.
    let audioInput = try AVCaptureDeviceInput(device: audioDevice)
    // If the input can be added, add it to the session.
    if captureSession.canAddInput(audioInput) {
        captureSession.addInput(audioInput)
    }
} catch {
    // Configuration failed. Handle error.
}

startRunning()을 호출하여 입력에서 출력으로 데이터 흐름을 시작하고 stopRunning()을 호출하여 흐름을 중지합니다.

 

중요

startRunning() 메서드는 차단(blocking) 호출로 시간이 다소 걸릴 수 있으므로 main queue가 차단되지 않도록 직렬 큐(serial queue)에 대해 세션 설정을 수행해야 합니다(UI 응답 유지).
구현 예는 AVCam: Building a Camera App을 참조하십시오.

sessionPreset 속성을 사용하여 출력의 품질 수준, 비트 전송률 또는 기타 설정을 사용자 정의할 수 있습니다. 

대부분의 일반적인 캡처 구성은 세션 사전 설정을 통해 사용할 수 있지만 일부 특수 옵션(예: 높은 프레임률)은 AVCaptureDevice 인스턴스에서 캡처 형식을 직접 설정해야 합니다.

댓글
공지사항