カメラビューをView Controllerに配置しようとしています。AVCaptureStillImageOutputとSwiftのAVCapturePhotoOutput 3
AVFoundation
を先頭に、またUIImagePickerControllerDelegate
とUINavigationControllerDelegate
クラスをインポートしました。
しかし、私がAVCaptureStillImageOutput
を使用しようとすると、XcodeはiOS10で廃止予定だったと私に知らせ、AVCapturePhotoOutput
を使用するべきです。それは完全に問題ありませんが、stillImageOutput.outputSettings
に電話するとすぐに.outputSettings
は利用できません。したがって、私はそれを動作させるためにAVAVCaptureStillImageOutput
を使用する必要がありますが、この機能はiOS10では廃止されたため、複数の警告があります。
私は検索して検索しましたが、本当に解決策を見つけることができませんでした。私は本当にあなたの助けに感謝します。私はどんな説明もすばらしくなるように学んでいます!コードは以下のとおりです。廃止さ
import UIKit
import AVFoundation
class CameraView: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var captureSession : AVCaptureSession?
var stillImageOutput : AVCaptureStillImageOutput?
var previewLayer : AVCaptureVideoPreviewLayer?
@IBOutlet var cameraView: UIView!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
captureSession = AVCaptureSession()
captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080
var backCamera = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)
var error : NSError?
do {
var input = try! AVCaptureDeviceInput (device: backCamera)
if (error == nil && captureSession?.canAddInput(input) != nil) {
captureSession?.addInput(input)
stillImageOutput = AVCaptureStillImageOutput()
stillImageOutput?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
if (captureSession?.canAddOutput(stillImageOutput) != nil) {
captureSession?.addOutput(stillImageOutput)
previewLayer = AVCaptureVideoPreviewLayer (session: captureSession)
previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect
previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer!)
captureSession?.startRunning()
}
}
} catch {
}
}
}
は、あなたがあなたのコードの一部を追加したい場合がありますがあります。 –