gpt4 book ai didi

ios - 在 didUpdateFrame 方法中保存 ARSCNView 快照会导致相机卡住

转载 作者:行者123 更新时间:2023-12-01 19:52:00 26 4
gpt4 key购买 nike

我在 session 期间在 ARKit 中创建视频。当我按下录制按钮时,相机卡住。我在 didUpdateFrame 委托(delegate)中编写了导致问题的代码。在那里,我将 scene.snapshot 保存在一个数组中。此外,当我从这些图像创建视频时,应用程序在调试器中崩溃并显示以下消息:
来自调试器的消息:由于内存问题而终止

    -(void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame
{
if (_recordButton.state == UIControlStateSelected)
{
currentState = Recording;
[self saveImage];
}
else if (previousState == Recording)
{
NSLog(@"Stop recording");
currentState = NotRecording;
recordTime = NULL;
self.nextButton.enabled=YES;
}
//update recording state per frame update
previousState = currentState;

}
    -(void)saveImage 
{
UIImage *image = self.sceneView.snapshot;
[self.bufferArray addObject:image];
image = nil;
}

最佳答案

不要将 ARSCNView.snapshot 与实现 ARSessionDelegate.didUpdateFrame 一起使用。我有同样的问题,解决方案是不实现 ARSessionDelegate.didUpdateFrame。我已经将 CADisplayLink 与 ARSCNView.snapshot 一起使用,并且效果很好。
我也尝试使用 ARFrame.capturedImage,但它根本不包含 AR 对象。 ARSCNView.snapshot 包含它们。

关于ios - 在 didUpdateFrame 方法中保存 ARSCNView 快照会导致相机卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282587/

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