gpt4 book ai didi

ios - 带有单例的 AVCaptureSession。如何管理?

转载 作者:行者123 更新时间:2023-11-28 08:26:18 25 4
gpt4 key购买 nike

伙计们,因为我有多个 View 和一些缩放按钮,我需要它们来更改预览相机输出,我认为使用 Singleton 进行 session 初始化是正确的,但我没有想法如何做到这一点,但找不到任何好的信息,有人可以帮助我吗?

最佳答案

更新

好的,所以,我设法以某种方式编写了它,我不知道是否可以,这是代码:

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
}

}

所以现在我想以这种方式调用它,我可以管理预览的布局,请问有什么建议吗?......

关于ios - 带有单例的 AVCaptureSession。如何管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39892529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com