、私は、このようAVCaptureStillImageOutputからキャプチャするためのコードを使用しています:サンプルバッファがヌルでない場合、なぜjpegStillImageNSDataRepresentationが例外をスローしますか? IOSの
[_captureStillOutput captureStillImageAsynchronouslyFromConnection:_captureConnection completionHandler:asyncCaptureCompletionHandler]。私のコードを煮詰めるための簡略化のため
は、私のasyncCaptureCompletionHandlerブロックは次のようになります。
void(^asyncCaptureCompletionHandler)(CMSampleBufferRef imageDataSampleBuffer, NSError *error) =
^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
if (CMSampleBufferIsValid(imageDataSampleBuffer)) {
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
}
}
私はすべての私のコードを経たとスタックオーバーフローを相互参照すると、任意の提案理由の有効なサンプルを発見していないしていますバッファは適切なJPEGでなくてもキャプチャされます。
_captureStillOutput = [[AVCaptureStillImageOutput alloc] init];
_captureStillOutput.outputSettings =
[NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecJPEG, AVVideoCodecKey,
nil];
if ([session canAddOutput:_captureStillOutput]) {
[session addOutput:_captureStillOutput];
}
デバッガでの補足情報があります: *キャッチされない例外により 'NSInvalidArgumentException' にアプリを終了、理由: '* + [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:] - 。未JPEGサンプルバッファー'
「jpegサンプルバッファではありません」と「オーバーフローしています」の両方で検索結果がゼロになりました。私は立ち往生している。バー。この解決のための次のステップは使用してデバッガに報告されたすべてのデータを記録することだった
いいえ「rm -rf DerivedData/*」といい、Xcodeを再起動すると、この問題が解決しました。 – Austin
実際には、問題は再び現れましたが、iTunesを終了すると消えてしまいました。これはかなり狂ったものです – Austin
それは再び現れて、そして再び消えたというメモに感謝します。 –