Tag: avcapturesession

为什么AVCaptureSession输出错误的方向?

所以,我遵循苹果的指示,使用AVCaptureSession捕获video会议: http : //developer.apple.com/iphone/library/qa/qa2010/qa1702.html 。 我面临的一个问题是,即使相机/ iPhone设备的方向是垂直的(并且AVCaptureVideoPreviewLayer显示垂直相机stream),输出图像似乎处于风景模式。 我检查了imageFromSampleBuffer:示例代码中的imageBuffer的宽度和高度,我分别获得了640px和480px。 有谁知道这是为什么? 谢谢!

用avcapturesession切换摄像头

在这里使用这个教程: http : //www.musicalgeometry.com/? p=1297我用AVCaptureSession创build了一个自定义覆盖和图像捕获。 我正试图让用户在前后相机之间切换。 这里是我在CaptureSessionManager中的代码来切换摄像头: – (void)addVideoInputFrontCamera:(BOOL)front { NSArray *devices = [AVCaptureDevice devices]; AVCaptureDevice *frontCamera; AVCaptureDevice *backCamera; for (AVCaptureDevice *device in devices) { //NSLog(@"Device name: %@", [device localizedName]); if ([device hasMediaType:AVMediaTypeVideo]) { if ([device position] == AVCaptureDevicePositionBack) { //NSLog(@"Device position : back"); backCamera = device; } else { //NSLog(@"Device position : front"); frontCamera […]

AVCaptureVideoPreviewLayer方向 – 需要景观

我的应用程序只是风景。 我正在像这样呈现AVCaptureVideoPreviewLayer: self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; [self.previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]]; [self.previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect]; NSLog(@"previewView: %@", self.previewView); CALayer *rootLayer = [self.previewView layer]; [rootLayer setMasksToBounds:YES]; [self.previewLayer setFrame:[rootLayer bounds]]; NSLog(@"previewlayer: %f, %f, %f, %f", self.previewLayer.frame.origin.x, self.previewLayer.frame.origin.y, self.previewLayer.frame.size.width, self.previewLayer.frame.size.height); [rootLayer addSublayer:self.previewLayer]; [session startRunning]; self.previewView有一个(0,0,568,320)的框架,这是正确的。 self.previewLayerlogging一个(0,0,568,320)的框架,这在理论上是正确的。 但是,相机显示在横屏中间显示为纵向矩形,相机预览图像的方向错误90度。 我究竟做错了什么? 我需要将相机预览图层以横向模式显示在全屏幕中,并且图像应该正确定位。

避免video开始和结束时的模糊(甚至在使用setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto之后)?

我们在使用setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto同时在iOS上捕捉video,但是video在开始和结束时有时会变得模糊(尽pipe在中间很好),这是非常有问题的,因为我们把第一帧作为静止图像以便在不切换相机模式的情况下启用video和照片function)。 将设备平放在桌面上可以消除所有模糊现象,因此整个video都非常清晰。 这表明它与video稳定有关,但是还有其他属性可以设置吗? locking焦点模式的问题吗? 其他疑难解答提示? 以下是PBJVision的video捕获function,我们使用这个function: – (void)startVideoCapture { if (![self _canSessionCaptureWithOutput:_currentOutput] || _cameraMode != PBJCameraModeVideo) { [self _failVideoCaptureWithErrorCode:PBJVisionErrorSessionFailed]; DLog(@"session is not setup properly for capture"); return; } DLog(@"starting video capture"); [self _enqueueBlockOnCaptureVideoQueue:^{ if (_flags.recording || _flags.paused) return; NSString *guid = [[NSUUID new] UUIDString]; NSString *outputFile = [NSString stringWithFormat:@"video_%@.mp4", guid]; if ([_delegate respondsToSelector:@selector(vision:willStartVideoCaptureToFile:)]) { outputFile […]

条码在迅速4

我正在尝试将mi应用程序升级到swift 4,但是条形码阅读器不工作。 我已经隔离了条码阅读器的代码,仍然不能正常工作。 相机工作,但它不检测条码。 代码在swift 3 iOS 10上工作得很好。 这是完整的代码 import AVFoundation import UIKit class ViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate { var captureSession: AVCaptureSession! var previewLayer: AVCaptureVideoPreviewLayer! override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.black captureSession = AVCaptureSession() let videoCaptureDevice = AVCaptureDevice.default(for: AVMediaType.video) let videoInput: AVCaptureDeviceInput do { videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice!) } catch { return } […]

打开iPhone上的手电筒/闪光灯

我知道打开闪光灯并将其保持在iPhone 4上的唯一方法是打开摄像机。 虽然我不太清楚代码。 这是我正在尝试的: -(IBAction)turnTorchOn { AVCaptureSession *captureSession = [[AVCaptureSession alloc] init]; AVCaptureDevice *videoCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; NSError *error = nil; AVCaptureDeviceInput *videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoCaptureDevice error:&error]; if (videoInput) { [captureSession addInput:videoInput]; AVCaptureVideoDataOutput* videoOutput = [[AVCaptureVideoDataOutput alloc] init]; [videoOutput setSampleBufferDelegate:self queue:dispatch_get_current_queue()]; [captureSession addOutput:videoOutput]; [captureSession startRunning]; videoCaptureDevice.torchMode = AVCaptureTorchModeOn; } } 有人知道这是否会工作,或者我错过了什么? (我还没有iPhone 4的testing – 只是尝试一些新的API)。 […]