【发布时间】:2017-02-13 19:31:41
【问题描述】:
我正在尝试从我的应用中捕获图像和视频,现在从 iOS 10 开始,"AVCaptureStillImageOutput" 已被弃用。
请帮助我在 Objective-C 中实现 AVCapturePhotoOutput。
这是我的示例代码:
_avCaptureOutput = [[AVCapturePhotoOutput alloc]init];
_avSettings = [AVCapturePhotoSettings photoSettings];
AVCaptureSession* captureSession = [[AVCaptureSession alloc] init];
[captureSession startRunning];
AVCaptureConnection *connection = [self.movieOutput connectionWithMediaType:AVMediaTypeVideo];
if (connection.active)
{
//connection is active
NSLog(@"Connection is active");
id previewPixelType = _avSettings.availablePreviewPhotoPixelFormatTypes.firstObject;
NSDictionary *format = @{(NSString*)kCVPixelBufferPixelFormatTypeKey:previewPixelType,(NSString*)kCVPixelBufferWidthKey:@160,(NSString*)kCVPixelBufferHeightKey:@160};
_avSettings.previewPhotoFormat = format;
[_avCaptureOutput capturePhotoWithSettings:_avSettings delegate:self];
}
else
{
NSLog(@"Connection is not active");
//connection is not active
//try to change self.captureSession.sessionPreset,
//or change videoDevice.activeFormat
}
【问题讨论】:
-
AVCapturePhotoOutput 的用途是什么?
-
你实现
AVCapturePhotoCaptureDelegate了吗? -
self.movieOutput是什么类型? -
self.movieOutput 是一种 AVCaptureMovieFileOutput 类。是的,我确实实现了 AVCapturePhotoCaptureDelegate 方法。
标签: ios objective-c iphone ios10 avcapturesession