gpt4 book ai didi

ios - AVCaptureVideoPreviewLayer 在发布时崩溃应用程序

转载 作者:行者123 更新时间:2023-11-29 03:13:16 26 4
gpt4 key购买 nike

我在 AVCaptureVideoPreviewLayer 方面遇到问题。我是这样创建的:

self.previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session];

session 是我的 AVCaptureSession 对象。它已经初始化了。当我从 View Controller 弹出时,我的应用程序崩溃了。我什至不使用这个变量,无论如何我都会崩溃。我得到 EXC_BAD_ACCESS 代码 = 1;。 self.previewLayer 是我的类对象。我声明它在我的类中,然后使用保留和非原子和@synthesize使其成为属性。我使用 RosyWritter 中的代码唯一的区别是我使用 AVCaptureVideoPreviewLayer。看来我在释放这个对象时遇到了问题。谁能告诉我我做错了什么?

编辑

终于解决了。碰巧我没有取消注册 videoOut 委托(delegate):)

PS:我使用自动引用计数

最佳答案

您能否提供更多关于如何访问 AVCaptureVideoPreviewLayer 的详细信息。如果有,请粘贴崩溃日志。

请使用以下 block 代码尝试您的代码模拟。

if ([self captureManager] == nil) {
captureManager = [[AVCamCaptureManager alloc] init];
captureManager.delegate = self;



if ([[self captureManager] setupSession] && _captureVideoPreviewLayer == nil) {
// Create video preview layer and add it to the UI
_captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[[self captureManager] session]];



if ([_captureVideoPreviewLayer isOrientationSupported]) {
[_captureVideoPreviewLayer setOrientation:AVCaptureVideoOrientationPortrait];
}

[_captureVideoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];


// Start the session. This is done asychronously since -startRunning doesn't return until the session is running.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[[self captureManager] session] startRunning];
});
}
}

希望对您有所帮助。请检查并让我知道我们是否必须采用其他解决方案。

关于ios - AVCaptureVideoPreviewLayer 在发布时崩溃应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989615/

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