我正在 try catch 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 = [NSMutableDictionarydictionaryWithObject: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;
}
}`
最佳答案
请分享或检查您连接的视频方向设置。
如果设置为某些固定方向硬件可能需要一些时间才能通过回调返回。请根据您当前的设备方向使用[connection setVideoOrientation:]方法设置方向,这样回调速度会更快。
欲了解更多详细信息,您可以阅读此Link
关于ios - iPhone 5S 的静态图像拍摄时间比 iPhone 5 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779522/