2014-02-14 41 views
3

我想捕捉800萬像素的靜態圖像。我用相機管道拍攝的時間來完成處理程序,在平均iPhone 5S是0.33秒,因爲iPhone 5需要少於0.15秒。可以任何身體解釋這一點。這是我的分析代碼。iPhone 5S的靜態圖像捕捉時間比iPhone 5慢嗎?

__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.6s,比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; 
} 

}`

回答

2

請分享或檢查網絡連接的視頻方向設置。

如果它設置爲某種固定方向,硬件可能需要一些時間才能通過回調返回。請使用方法[連接setVideoOrientation:]根據您當前的設備方向設置方向,這將是一個更快的回調。

有關詳細信息你可以閱讀這個Link

+2

這工作真棒。@ poloolop。 我正在設置它的風景正確的方向和你的建議後。我仍然無法弄清楚爲什麼只有5S這個問題是存在的。 –