我使用ZXing作爲應用程序,除了我允許在一行中掃描幾次(即,ZXingWidgetController不是隻要檢測到某種東西,就會被迫退出)。AVCaptureSession - 停止運行 - 需要很長的時間
我經歷了很長很長凍結(有時它永遠不會結束)當我按下解僱按鈕調用
- (void)cancelled {
// if (!self.isStatusBarHidden) {
// [[UIApplication sharedApplication] setStatusBarHidden:NO];
// }
[self stopCapture];
wasCancelled = YES;
if (delegate != nil) {
[delegate zxingControllerDidCancel:self];
}
}
與
- (void)stopCapture {
decoding = NO;
#if HAS_AVFF
if([captureSession isRunning])[captureSession stopRunning];
AVCaptureInput* input = [captureSession.inputs objectAtIndex:0];
[captureSession removeInput:input];
AVCaptureVideoDataOutput* output = (AVCaptureVideoDataOutput*)[captureSession.outputs objectAtIndex:0];
[captureSession removeOutput:output];
[self.prevLayer removeFromSuperlayer];
/*
// heebee jeebees here ... is iOS still writing into the layer?
if (self.prevLayer) {
layer.session = nil;
AVCaptureVideoPreviewLayer* layer = prevLayer;
[self.prevLayer retain];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 12000000000), dispatch_get_main_queue(), ^{
[layer release];
});
}
*/
self.prevLayer = nil;
self.captureSession = nil;
#endif
}
(請注意是刪除該視圖的dismissModalViewController是在委託方法內)
我只有在解鎖時纔會遇到凍結,只有當我連續進行多次掃描時,才使用iPhone 4(no用4S凍結)
任何想法?
乾杯
羅
很難提供任何建設性的。 UIKit會變得非常困惑,如果您從主線程中調用,則會執行此類操作,但是您的描述中沒有任何內容會顯示證據。否則,沒有任何已知的原因會以你描述的方式掛起,並且在你寫的東西中沒有任何明顯的表現。所以它可能是沒有顯示的東西,唯一的方法是調試它... – smparkes 2012-08-13 16:48:23
我發現這不是一個問題,因爲iOS 9 – onmyway133 2016-05-04 07:29:01