私たちはアプリを持っており、アップデートとして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