问题描述
我想知道是否可以在使用Swift的iOS上以秒为单位设置延迟。
比方说,我将相机延迟了30秒。如果我将相机对准蹲下的人,然后那个人站起来,那么直到那30秒过去,我的相机才会显示出来。换句话说,它将继续显示该人蹲下,直到该时间过去为止。
我该如何实现?
解决方法
这听起来非常困难。问题是相机记录每秒(很可能)每秒带来30帧。因此,需要将30秒钟前的缓冲区保存在某个位置,并以原始格式保存,即大量数据,以便您不仅仅将其保存在内存中。
您不想写成图像,因为与视频相比,压缩是垃圾。
也许最好的方法是设置您的捕获,然后在10秒钟的片段中捕获视频,保存到文件,然后在AVPlayer或类似设备上显示这些视频文件片段。这样,它对用户来说就“延迟”了。
无论哪种方式,从我对事物如何工作的理解来看,主要的挑战是在等待显示它们时如何处理这些缓冲区。您可以将其流式传输到某个地方,但是然后需要一个整个后端来支持它,然后将其流回,这似乎很愚蠢。