AVCaptureVideoPreviewLayer
全部标签 我正在尝试像这样将AVCaptureVideoPreviewLayer添加到我的View中[captureVideoPreviewLayersetFrame:CGRectMake(10.0f,10.0f,300.0f,300.0f)];[self.view.layeraddSublayer:captureVideoPreviewLayer];但它似乎不遵循CGRectMake,层高300但宽度不是,我不知道为什么! 最佳答案 解决方案很简单,我只需添加captureVideoPreviewLayer.videoGravity=AVL
我已经尝试过这个解决方案CGImage(orUIImage)fromaCALayer但是我没有得到任何东西。如问题所述,我正在尝试从相机的预览层获取UIImage。我知道我可以捕获静止图像或使用outputsamplebuffer,但我的session质量视频设置为照片,因此这2个方法中的任何一个都很慢并且会给我一个大图像。所以我认为可行的方法是直接从预览层获取图像,因为这正是我需要的尺寸并且已经对其进行了操作。我只是不知道如何让这一层绘制到我的上下文中,以便我可以将其作为UIImage获取。也许另一种解决方案是使用OpenGL将这一层直接作为纹理获取?任何帮助将不胜感激,谢谢。
我已经在我的ViewController中添加了一个View,并在Interfacebuilder中向我的View添加了一个记录按钮。我以编程方式初始化AVCaptureVideoPreview层并将其添加到我的view.layer。运行后,我会在屏幕上看到摄像头在工作,但没有按钮。我必须使用[myViewaddSubview:self.record]添加按钮,然后我才能看到它。我检查了我的界面构建器,按钮是不透明的,但在我将它添加到代码中之前它仍然不会显示。有什么想法吗?非常感谢您的帮助。 最佳答案 那是因为您可能在ViewCon
在客户端手机上很少能在相机解除分配期间复制崩溃FatalException:NSRangeExceptionCannotremoveanobserverforthekeypath"changeSeed"frombecauseitisnotregisteredasanobserver.Thread:FatalException:NSRangeException0CoreFoundation0x000000018449259c__exceptionPreprocess+1321libobjc.A.dylib0x0000000194be40e4objc_exception_throw+602
我正在尝试从视频源中抓取静止图像(基本上是暂停或“快照”功能)。我的项目是使用BenjaminLoulier'stemplate设置的.我的问题是,即使我通过prevLayer(AVCaptureVideoPreviewLayer)在屏幕上显示彩色视频,我已将视频设置设置为灰度,所以我无法从customLayer获取UIImage(一个普通的CALayer)。我尝试使用给定here的这个函数,但是由于某些愚蠢的原因(显示清晰/透明),这对AVCaptureVideoPreviewLayer不起作用。有谁知道将AVCaptureVideoPreviewLayer的内容保存为UIImage
我需要在AVCaptureVideoPreviewLayer上显示图像(帧)叠加层。我该怎么做?-(void)viewDidAppear:(BOOL)animated{AVCaptureSession*session=[[AVCaptureSessionalloc]init];session.sessionPreset=AVCaptureSessionPresetPhoto;[sessioncommitConfiguration];CALayer*viewLayer=self.vImagePreview.layer;NSLog(@"viewLayer=%@",viewLayer);AV
我初始化一个AVCaptureSession并像这样预设它:AVCaptureSession*newCaptureSession=[[AVCaptureSessionalloc]init];if(YES==[newCaptureSessioncanSetSessionPreset:AVCaptureSessionPresetPhoto]){newCaptureSession.sessionPreset=AVCaptureSessionPresetPhoto;}else{//Errormanagement}然后我设置一个AVCaptureVideoPreviewLayer:self.pr
我有两个ViewController。一个是根VC,包含录制按钮等UI界面。在这个ViewController上,我还在索引0处显示另一个VC的View。这个View包含一个AVCaptureVideoPreviewLayer。我想让我的摄像机模仿Apple摄像机应用程序,其中界面布局会随着旋转而调整,但视频预览层不会。您可以看到股票视频应用中的录制计时器(UILabel)如何根据方向在顶部消失和重新出现。知道怎么做吗?我发现了一个建议,建议将预览添加到应用程序委托(delegate)的窗口,因为它不符合导航Controller的旋转,但它对我不起作用。谢谢!
我正在使用AVFoundationapi创建相机预览View,但在完成后清理时遇到问题。我发现这个问题的最佳答案是这个SOthread,谢谢科多。但是,他没有解决AVCaptureVideoPreviewLayer的重新分配问题,这就是我遇到麻烦的地方。在我的ViewController类中,我在startCameraCapture方法中有一些初始化代码。听Codo的回答,我正在使用dispatch_set_finalizer_f(_captureQueue,capture_cleanup);来注册一个回调,以便在队列真正关闭时调用。我还保留self,以确保在队列完成调用我的对象之前我
我有一个正在开发的小型增强现实应用程序,我想知道如何保存用户通过点击按钮或计时器看到的内容的屏幕截图。该应用通过在另一个UIView上方叠加实时摄像头画面来工作。我可以使用电源按钮+主页按钮保存屏幕截图,这些将保存到相机胶卷中。但是,即使我要求窗口自行保存,Apple也不会渲染AVCaptureVideoPreviewLayer。它将在预览层所在的位置创建一block透明的Canvas。增强现实应用保存屏幕截图(包括透明度和subview)的正确方法是什么?//displayingalivepreviewononeoftheviews-(void)startCapture{captur