1
여러 뷰와 일부 미리보기 카메라 출력을 변경하는 데 필요한 확대/축소 단추가 있으므로 사람들이 정확히 싱글 톤 세션 초기화를 사용하게 될 것이라고 생각합니다. 어떤 좋은 정보를 찾을 수 없습니까, 누군가 제발 나를 도와 줄 수 있습니까?싱글 톤을 사용하는 AVCaptureSession. 관리 방법
여러 뷰와 일부 미리보기 카메라 출력을 변경하는 데 필요한 확대/축소 단추가 있으므로 사람들이 정확히 싱글 톤 세션 초기화를 사용하게 될 것이라고 생각합니다. 어떤 좋은 정보를 찾을 수 없습니까, 누군가 제발 나를 도와 줄 수 있습니까?싱글 톤을 사용하는 AVCaptureSession. 관리 방법
UPDATE
좋아, 그래서, 내가 그것을 쓸 어떻게 든 관리, 그것은 여기, 괜찮아 코드 인 경우 나도 몰라 : 나는 그것을 호출 할 그래서 지금
protocol Singleton: class {
static var sharedInstance: Self { get }
}
final class AVFSessionSingleton: Singleton {
static let sharedInstance = AVFSessionSingleton()
private init() {
session = newVideoCaptureSession()!
}
var session: AVCaptureSession!
var imageOutput : AVCaptureStillImageOutput?
//FUNCTION
func newVideoCaptureSession() -> AVCaptureSession? {
func initCaptureDevice() -> AVCaptureDevice? {
var captureDevice: AVCaptureDevice?
let devices: NSArray = AVCaptureDevice.devices() as NSArray
for device: Any in devices {
if (device as AnyObject).position == AVCaptureDevicePosition.back {
captureDevice = device as? AVCaptureDevice
}
}
print("device inited")
return captureDevice
}
func initOutput() {
self.imageOutput = AVCaptureStillImageOutput()
}
func initInputDevice(captureDevice : AVCaptureDevice) -> AVCaptureInput? {
var deviceInput : AVCaptureInput?
do {
deviceInput = try AVCaptureDeviceInput(device: captureDevice)
}
catch _ {
deviceInput = nil
}
return deviceInput
}
func initSession(deviceInput: AVCaptureInput) {
self.session = AVCaptureSession()
self.session?.sessionPreset = AVCaptureSessionPresetPhoto
self.session?.addInput(deviceInput)
self.session?.addOutput(self.imageOutput!)
}
return session
}
}
그런 식으로 미리보기의 레이아웃을 관리 할 수 있습니다. 제안 사항은 무엇입니까? ...
AVCaptureSession에 대한 속성을 가진 싱글 톤으로 클래스를 만듭니다. 이 http://krakendev.io/blog/the-right-way-to-write-a-singleton을 사용하여 싱글 톤을 만들 수도 있습니다. –