それはあなたがすぐにこのようなファイルへの記録を開始することができないことが判明:
let session = AVCaptureSession()
session.beginConfiguration()
// add inputs, outputs
session.commitConfiguration()
videoFileOutput.startRecording(to: filePath, recordingDelegate: self)
この黙っを失敗し、全く何もしません!
代わりに、あなたはAVCaptureSessionDidStartRunning
通知のために登録することにより、起動するセッションを待つ必要があります。
NotificationCenter.default.addObserver(self, selector: #selector(sessionDidStartRunning), name: .AVCaptureSessionDidStartRunning, object: session)
次のように、セッションの開始直後に一時ファイルへの記録を開始するには、このメソッドを実装することができます
@objc
func sessionDidStartRunning(notification: NSNotification) {
let session = notification.object as! AVCaptureSession
for output in session.outputs {
if let output = output as? AVCaptureMovieFileOutput {
let filePath = URL(fileURLWithPath: NSTemporaryDirectory() + "recording.mov")
try? FileManager.default.removeItem(at: filePath)
output.startRecording(to: filePath, recordingDelegate: self)
}
}
}