Apple の AVCam デモと同様に構築されたビデオ カメラ ビデオがあります。デバッグの方法がわからないという非常にイライラする問題に遭遇しました。
基本的に、viewcontroller でのビデオ カメラのセットアップについて話しています。VC が表示されると、プレビューレイヤーはカメラが見ているものを表示し、記録ボタンを押すと、ファイルへの記録を開始します。
これは 20% の確率で機能します。残りの時間、VC は正常にロードされますが、プレビュー レイヤーは 1 ~ 3 秒後にフリーズします。フリーズすると、クラッシュやエラーがスローされることはありません [編集: 真実ではありません。以下を参照してください]。ただし、レコードがフリーズした後にレコードをヒットすると、への呼び出しがトリガーされます
[self.fileOutput startRecordingToOutputFileURL:currentVideoURL recordingDelegate:self];
AVCaptureFileOutputRecordingDelegate メソッドへの呼び出しをすぐに受け取ります
-(void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error
NSError オブジェクトが設定され、エラー コード -11803 {AVErrorSessionNotRunning} が設定されます。このメソッドは、[captureSession startRunning] が呼び出された後に確実に実行されています。
アップデート
何かが原因で、セッションがすぐに中断されます。captureSession.isInterrupted は、キャプチャが開始された直後に TRUE に設定され、セッションを開始するとすぐに次の通知が発生します。
AVCaptureSessionWasInterruptedNotification
AVCaptureSessionDidStopRunningNotification (edit -- had the wrong const here)
開始直後にセッションが中断される原因は何ですか?
AVCaptureSession が中断される可能性のあるすべてのイベントに関するドキュメントはありますか?