【发布时间】:2021-03-15 22:08:12
【问题描述】:
当我想暂停会话时,这是我唯一的解决方案:
func pauseSession () {
self.sessionQueue.async {
if self.session.isRunning {
self.session.stopRunning()
}
}
}
func resumeSession () {
self.sessionQueue.async {
if !self.session.isRunning {
self.session.startRunning()
}
}
}
这似乎完全停止了会话,这很好,但看起来很昂贵。
我似乎遇到的问题是,如果暂停和恢复被及时调用,整个应用程序会冻结大约 10 秒,直到恢复响应。这主要是因为它还没有完成最后一个过程(是停止还是启动)。
有解决办法吗?
本机相机应用似乎可以很好地做到这一点。如果你打开它,打开最后一张照片,你会看到右上角的绿色指示灯熄灭,表示会话已暂停/停止。如果您在照片上向下滑动,会话将继续。如果您滑动并让它被取消,再次快速滑动您可以看到会话一次又一次地快速暂停和恢复,没有任何问题。
【问题讨论】:
-
您是否检查过它在没有附加调试器的情况下在发布版本中的行为?
标签: ios swift xcode avfoundation avcapturesession