我们有一个应用程序和更新,我们希望在应用程序中有Photobooth。一切正常,我得到相机的预览等,但拍照不起作用..我尝试了所有我在这里找到的解决方案,但没有任何工作。快速拍摄照片崩溃
头:
var captureSession: AVCaptureSession?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
抽奖:
do {
let input = try AVCaptureDeviceInput(device: getDevice(position: .front))
captureSession = AVCaptureSession()
captureSession?.addInput(input)
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
videoPreviewLayer?.frame = cameraView.bounds
cameraView.layer.addSublayer(videoPreviewLayer!)
captureSession?.startRunning()
...
TakePhoto():
let stillImageOutput = AVCaptureStillImageOutput.init()
stillImageOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
if(self.captureSession?.canAddOutput(stillImageOutput))!{
self.captureSession?.addOutput(stillImageOutput)
}
let videoConnection = stillImageOutput.connection(withMediaType:AVMediaTypeVideo)
if (videoConnection?.isEnabled)! {
stillImageOutput.captureStillImageAsynchronously(from:videoConnection, completionHandler: {
(sampleBuffer, error) in
...
而且它崩溃的最后一行。以下是错误:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[AVCaptureStillImageOutput captureStillImageAsynchronouslyFromConnection:completionHandler:] Inconsistent state'
信不信由你,但我们需要在3天内更新我们从苹果应用程式,或将在AppStore(我们需要额外的功能。)被移除所以,如果你能帮助我们会非常感谢!
看看我的例子,我只是上传到https://github.com/NikhilManapure/AVFoundationDemo,我希望这有助于。 –
AVCaptureStillImageOutput已被弃用。改用AVCapturePhotoOutput。 –
@NikhilManapure我完全复制了所有的代码,但我得到的错误:“错误发生:无法记录”捕获功能,三重检查了一切,它真的是一样的 – MaximVW