2012-04-22 3 views
4

작동하지 내가 하위 뷰를 같이 추가 한 또 다른 작은 뷰에있는 작은 미리보기를 보여주기 위해 노력하고 있어요 (고급 비디오 전체 화면을 보여주는 작품)을 AVCaptureVideoPreviewLayer. 이렇게하려면 renderInContext을 사용하려고했지만 "프리뷰 뷰"에 검은 색 화면이 나타납니다. AVCaptureVideoPreviewLayer 내가 가진 renderInContext

[[self.captureView.layer.sublayers objectAtIndex:0] renderInContext:context]; 

다른 층

내 "미리보기"에서 잘 작동하고 표시하는 것, 왜 AVCaptureVideoPreviewLayer을하지 않는 이유는 무엇입니까?

답변

7

AVCaptureVideoPreviewLayer 그 수단 불문 코어 애니메이션 조성물 모델의 다른 측면과 함께 renderInContext를 구현하지 않는 층의 OpenGL로 구현된다. 이 방법의

중요 맥 OS X v10.5의 구현이 전체 코어 애니메이션 구성 모델을 지원하지 않습니다 renderInContext의의 CALayer 문서의

Quoth Apple

. QCCompositionLayer, CAOpenGLLayer 및 QTMovieLayer 레이어는 렌더링되지 않습니다. 또한 3D 변형을 사용하는 레이어는 렌더링되지 않으며 backgroundFilters, filters, compositingFilter 또는 마스크 값을 지정하는 레이어도 렌더링되지 않습니다. Mac OS X의 이후 버전에서는 이러한 레이어 및 속성 렌더링을 지원할 수 있습니다. 아이폰 OS 5.1.1로

이 여전히 경우입니다.

내가 처리 한 방식은 AVCaptureVideoDataOutput을 사용하고 Apple에서 게시 한 imageFromSampleBuffer:이라는 편리한 코드 샘플로 캡처 한 샘플 버퍼를 technical QA1702으로 보내는 것입니다.