gpt4 book ai didi

ios - AVCamPreviewView 初始化缓慢,有时会在关闭/重新打开 View 后导致崩溃 - 使用 AVCam 示例项目

转载 作者:行者123 更新时间:2023-11-28 22:15:31 24 4
gpt4 key购买 nike

我正在使用 AVCam 示例项目,这是本月初(2014 年 2 月)的最新版本。我添加了 Flash 选择功能并删除了录制功能,但我认为这与问题无关。

当更改 View 并连续多次重新打开 AVCam View 时,应用程序要么崩溃,要么预览 View 初始化需要很长时间(约 15 秒)。这只是有时会发生。

我假设问题与更改 View 时的清理有关,但该示例看起来像是彻底清理:

- (void)viewDidDisappear:(BOOL)animated
{
dispatch_async([self sessionQueue], ^{
[[self session] stopRunning];

[[NSNotificationCenter defaultCenter] removeObserver:self name:AVCaptureDeviceSubjectAreaDidChangeNotification object:[[self videoDeviceInput] device]];
[[NSNotificationCenter defaultCenter] removeObserver:[self runtimeErrorHandlingObserver]];

[self removeObserver:self forKeyPath:@"sessionRunningAndDeviceAuthorized" context:SessionRunningAndDeviceAuthorizedContext];
[self removeObserver:self forKeyPath:@"stillImageOutput.capturingStillImage" context:CapturingStillImageContext];
[self removeObserver:self forKeyPath:@"movieFileOutput.recording" context:RecordingContext];
});
}

这是我更改 View 的代码(同时发送捕获的图像)(我正在使用 Storyboard 模式操作加载 View ):

-(void)dealWithNewImage:(UIImage*)imageIn {

[self saveCamState];

//change view and send us the image
UIStoryboard *storyboard = self.storyboard;
DrawingController *drawView = (DrawingController *)[storyboard instantiateViewControllerWithIdentifier:@"DrawingView"];

drawView.imageIn = imageIn;
[self presentViewController:drawView animated:NO completion:nil];

}

我不知道是什么导致了崩溃,也不知道为什么有时相机预览需要大约 15 秒才能显示。

在此先感谢您的帮助!

最佳答案

在 viewDidDisappear 方法中,在 [[self session] stopRunning] 之后添加以下内容;为我解决了这个问题:

for(AVCaptureInput *input in captureSession.inputs) {
[captureSession removeInput:input];
}

for(AVCaptureOutput *output in captureSession.outputs) {
[captureSession removeOutput:output];
}

关于ios - AVCamPreviewView 初始化缓慢,有时会在关闭/重新打开 View 后导致崩溃 - 使用 AVCam 示例项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com