gpt4 book ai didi

ios - captureStillImageAsynchronously 在特定时间不起作用

转载 作者:行者123 更新时间:2023-11-30 12:36:42 25 4
gpt4 key购买 nike

我正在编写一个应用程序,该应用程序在用户按下按钮后每 0.1 秒拍摄一张图像。然而,我无法在图像之间获得一致的 0.1 秒延迟。

这是因为 captureStillImageAsynchronously 是异步关闭吗?从 AVCapturePhotoOutput 切换到 capturePhoto 可以解决此问题吗?这是我的代码的摘要。

var stillImageOutput : AVCaptureStillImageOutput?

// Button action.
@IBAction func takeImage(_ sender: UIButton) {
//take 1 image every 0.1 seconds scheduled using a timer
Timer.scheduledTimer(timeInterval: 0.1,
target: self,
selector: #selector(calldidPressTakePhoto),
userInfo: nil,
repeats: true)
}

// Take image
func didPressTakePhoto(){

if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo){

videoConnection.videoOrientation = AVCaptureVideoOrientation.portrait

//Capture image. everything in this closure is ASYNCHRONOUS?
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: {
(sampleBuffer, error) in

//Do something with the result image...

})
}
}

最佳答案

我最好的选择是,虽然 .captureStillImageAsynchronously 是异步的,但它仍然访问共享资源,因此很可能会有一个内部互斥体,阻止您如此快速地调用它,以免在执行中重叠。我认为你的相机在跟上 0.1 秒的射速方面存在问题。

关于ios - captureStillImageAsynchronously 在特定时间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773123/

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