Nic*_*ard 5 cocoa-touch objective-c avfoundation uiview ios
我有一个AVCaptureVideoPreviewLayer(工作正常,显示全屏视频),我试图在另一个小视图中显示一个小预览,我已添加为子视图.要做到这一点,我试图使用,renderInContext但我得到的是我的"预览视图"中的黑屏.
[[self.captureView.layer.sublayers objectAtIndex:0] renderInContext:context];
Run Code Online (Sandbox Code Playgroud)
任何其他图层似乎工作正常并显示在我的"预览视图"中,为什么不AVCaptureVideoPreviewLayer呢?
AVCaptureVideoPreviewLayer实现为OpenGL层,它不会实现renderInContext以及CoreAnimation组合模型的其他一些方面,无论这意味着什么.
答曰苹果 renderInContext的CALayer的文件中:
重要说明此方法的Mac OS X v10.5实现不支持整个Core Animation组合模型.不渲染QCCompositionLayer,CAOpenGLLayer和QTMovieLayer图层.此外,不渲染使用3D变换的图层,也不渲染指定backgroundFilters,filters,compositingFilter或蒙版值的图层.未来版本的Mac OS X可能会增加对渲染这些图层和属性的支持.
从iOS 5.1.1开始,情况仍然如此.
我处理的方法是使用AVCaptureVideoDataOutput捕获的样本缓冲区并将其发送到imageFromSampleBuffer:Apple在技术QA1702中发布的一个方便的代码示例中.
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |