将SwiftUI View录制到视频并播放

问题描述

可以或应该使用哪个框架将SwiftUI视图记录到视频(长)或gif文件(短)中?用户和应用程序都可能导致视图内容更改,然后还有动画。 CoreGraphics,MetalKit,AVFoundation,CoreVideo,CoreAnimation ... AVAssetWriter,...

回放如何?如果使用一个SwiftUi视图播放视频,而使用另一个视图显示时间轴或控件,那么如何使两个视图保持同步? 计时器,CVdisplayLink / CAdisplayLink,...

这里没有树林,请让我走上正确的路。谢谢!

解决方法

也许您可以使用 NSHostingView.cacheDisplay(in:to:) 将帧绘制到 NSBitmapImageReps 中,然后使用 CoreGraphics 使用这些帧创建动画 GIF。参见例如 NSImage+GIF.m