我正在尝试用8百万像素拍摄静止图像。我描述了摄像机管道进入完成处理程序所花费的时间,平均而言,iPhone 5S需要0.33秒,因为iPhone 5需要不到0.15秒。可以任何机构解释这个。这是我的分析代码。
__block NSDate *TimerAcross = [NSDate date];
[stillImageOutput captureStillImageAsynchronouslyFromConnection:connection
completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error)
{
DLog(@"handler call timer = %f", [[NSDate date] timeIntervalSinceDate:TimerAcross]);
}`
当我在方形凸轮(苹果演示代码)中尝试相同的代码时。我看到iPhone 5S的使用时间约为0.6秒,比iPhone 5还要小。 这背后的原因是什么。
我的设置用于捕获YUVSP图像。 `NSMutableDictionary * outputSettings = [NSMutableDictionary dictionaryWithObject:AVVideoCodecJPEG forKey:AVVideoCodecKey];
[outputSettings setValue:@(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange)forKey:(id)kCVPixelBufferPixelFormatTypeKey];
NSMutableDictionary *videoOutputSettings = [NSDictionary dictionaryWithObject:@(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) forKey:(id)kCVPixelBufferPixelFormatTypeKey];
[stillImageOutput setOutputSettings:outputSettings];
[videoDataOutput setVideoSettings:videoOutputSettings];
videoDataOutput.alwaysDiscardsLateVideoFrames = YES;
if([captureSession canAddOutput:stillImageOutput] && [captureSession canAddOutput:videoDataOutput])
{
[captureSession addOutput:videoDataOutput];
[captureSession addOutput:stillImageOutput];
NSLog(@"added output to captureSession");
return YES;
}
else
{
NSLog(@"error in adding still image output");
return NO;
}
}`
答案 0 :(得分:2)
请分享或检查您的连接的视频方向设置。
如果设置为某个固定方向,硬件可能需要一些时间才能通过回叫返回。请使用方法[connection setVideoOrientation:]根据您当前的设备方向设置方向,这将是一个更快的回叫。
有关详细信息,请参阅此Link