我正在开发一个swift应用程序,并使用AVFoundation来捕获视频输入。当我运行该应用程序时,在开始时有大约1秒钟的时间,FPS是30,但随后它去60,并保持一致。我下面有我的async调用。我试图等待FPS达到60,然后再显示我想显示的内容。
sessionQueue.async {
\\... other code here ...
self.session.startRunning()
self.isSessionRunning = self.session.isRunning
DispatchQueue.main.async {
rootLayer = self.jetView.layer
self.jetView.frame = rootLayer.bounds
setup(videoInput: self.videoDeviceInput, view: self)
}
}
你的帧率主要是由你在主线程上的工作量决定的,它受到渲染变化的数量和渲染所需的工作的影响。
你应该配置文件,并尽量减少这一点。 也许用一个更简单的演示动画,或者如果你有一个复杂的自动布局,你应该考虑一个简单的手动布局。 (这些都是典型的VC启动帧率问题)
你需要配置文件来确定。