在ARKit中截图

时间:2018-10-01 11:13:10

标签: xamarin xamarin.ios scenekit augmented-reality arkit

我目前正在使用Xamarin制作我的第一个ARKit应用。

我正在尝试捕获AR视图(相机视图+ 3D场景)以供用户保存和共享。

正如其他文章所建议的那样,我在ARSCNView(名为SceneView)上使用this 'Snapshot' method来获取UIImage并将其与以前创建的UIImageView一起显示,并且一直在获取这个MemberAccessException:MemberAccessException screenshot

添加的堆栈跟踪没有帮助: Stacktrace screenshot

似乎Snapshot在内部尝试创建SCNSceneRenderer实例,因此出现错误。


我有点绝望,您会认为在AR视图中使用3D场景拍照很简单自然。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

似乎您正在尝试在类本身而不是该类的实例上调用snapshot。将您的呼叫更改为在视图对象上呼叫snapshot

答案 1 :(得分:0)

因此,我仍然相信这是Xamarin的错误,并且找到了解决方法。

我引用的UIView是要从列表ScreenshotHiddable中的屏幕快照中隐藏的,并且我正在我的SceneView上使用经典的UIView.Capture方法:

ScreenshotHiddable.HiddenAll(true);
UIImage screenshot = SceneView.Capture();
ScreenshotHiddable.HiddenAll(false);

我承认这有点丑陋,但是可以正常工作。