有没有办法防止 ios 帧率从低开始
Is there a way to prevent ios frame rate from starting low
我正在开发 swift 应用程序并使用 AVFoundation 捕获视频输入。当我 运行 应用程序开始时大约有 1 秒的时间 FPS 为 30,但随后它变为 60 并始终保持这种状态。我在下面有我的异步调用。我正在尝试等待 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 启动帧率问题)
您需要配置文件才能确定。
我正在开发 swift 应用程序并使用 AVFoundation 捕获视频输入。当我 运行 应用程序开始时大约有 1 秒的时间 FPS 为 30,但随后它变为 60 并始终保持这种状态。我在下面有我的异步调用。我正在尝试等待 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 启动帧率问题)
您需要配置文件才能确定。