录制途中强制退出双摄 App 会怎样?
大概率会丢掉这一条——拿到的不是一段变短但完整的视频,而是一个根本打不开的残缺文件。这话得先说清楚,因为这是本站唯一一个打破常规的例外:电话、别的 App 抢走摄像头、屏幕自己锁上、手机过热、存储不够,这些中断最后都会把文件好好收尾。强制退出不会,而且原因是机制层面的,不是哪个开关没打开。
差别就在于:丢掉摄像头的那一刻,App 本身还在不在跑。前面那些情况里都还在——iOS 收走摄像头,但会让进程再多活一小会儿,这一小会儿正是用来把文件收尾的窗口。强制退出连这个进程本身都一并结束了,不只是摄像头,收尾这一步也就没有谁能去执行了。
为什么站内其他中断都能好好收场
接到电话、被切到别的 App、屏幕自动锁屏、手机过热到临界、存储跌破安全线——这些都会把摄像头会话从双摄 App 手里收走,但都不会直接杀掉这个 App。iOS 把会话挂起、把 App 挪到后台,而一个刚被挪到后台的 App,在被彻底暂停之前还有一小段能做事的时间。一个做得规矩的 App,会用这段时间把文件收尾:把已经写进去的内容整理成一个完整、能播放的文件,而不是晾在那儿半成品的状态。
这就是为什么本站反复出现的答案都是某个版本的「你得到的是一段更短的视频,不是一个坏文件」。这不是什么特别的恢复功能,只是 App 拿 iOS 给的那一小段缓冲时间做了它该做的事。强制退出,恰恰是唯一一种压根不给这段缓冲时间的收场方式。
强制退出到底拿走了什么
在多任务界面把 App 卡片往上一划,并不是在请它「收拾收拾再走」,而是当场直接结束这个进程。真正崩溃、或者手机在录制中途重启,情况是一样的。这些方式里都没有「请先做完手头的事」这一步,操作系统就是在这一瞬间不再运行这个 App 的代码,不管那段代码当时正在做什么。
这其中当然也包括原本要负责把视频文件收尾的那一步。如果录制确实还在进行——画面还在不断进来、不断被写入——这份工作会停在它刚好停下的地方,没有任何还在运行的东西能去告诉文件「到这里就结束了」。这不是双摄 App 多花点心思就能绕开的缺口,它是强制退出这件事本身决定的:不存在一种「App 收到指令后体面退出」的中间状态。
写到一半的视频文件,不只是「变短了」
录制过程中每一帧都是连续写入的,这很容易让人以为突然中断也就是把已经拍到的部分留下来——就像切换 App 那样。但视频文件不只是一串画面,结尾处还需要写入一小段「说明书」,告诉播放器这个文件是怎么组织的:一共多长、每一帧在哪、该怎么开始播放。而这一小段说明书,正是正常停止录制时才会写的那一步,进程被杀掉之后就没人来写了。
缺了这一步,磁盘上留下的往往不是一段变短的视频,而是一个播放器根本认不出来是视频的文件——它可能好端端地待在文件夹里,占的空间和拍到的内容差不多,却怎么也打不开。这不是哪一个 App 或哪一个系统特有的短板,而是视频文件这种东西本身的组织方式决定的,放在任何一台现代手机上的任何录像 App 上都一样。
「卡住了」和「被杀掉了」不是一回事
有两件事当下感觉很像,其实完全不同,值得分开说。一个看起来卡住的 App——点它没反应、画面停在同一帧——通常进程还活着,只是正忙,往往是因为同一种发热或系统负载,本来就可能让录制自己好好停下来,也顺带让整个界面变迟钝了。多等几秒,它通常会自己缓过来,或者由系统出面,用本站其他地方描述过的那种「体面停止」方式结束录制。
真正把进程拿掉的,是主动把 App 卡片从多任务界面划走,或者是真的崩溃了,又或者是手机在拍摄中途重启。重启这件事值得单独说一句:它不只是结束了这个 App,而是把周围整个操作系统的状态都拆掉了,所以录制到一半的内容会像强制退出那样丢掉,甚至丢得更彻底。
真正有用的做法
- 录制中如果画面看起来卡住了,先等几秒再采取行动——大多数「卡住」其实是手机在忙,不是 App 没了。
- 想结束录制,点停止按钮,走正常流程,而不是靠离开 App 让它自己终止。只有正常停止才留出了收尾文件的时间。
- 把「录制中不强制退出」当成和「开拍前关掉自动锁屏」「开拍前打开勿扰模式」同一级别的规矩——它应该是开拍前就定好的事,而不是录到一半才临时决定。
- 真出现崩溃或者强制退出之后,去 App 自带的素材库看看,但别提前假设结果。已经停止、或者已经接近停止时被打断的那条,往往完整地待在那儿;而在写入过程中被杀掉的那条,通常干脆就不在——这是符合预期的现象,不是需要追查的故障。
延伸问题
App 只是卡住了,我没有强制退出,录像已经没了吗?
不一定。画面卡住通常说明 App 还在跑,只是正忙,原因往往和能自己体面结束录制的那些情况一样——发热、系统负载。多给它几秒钟,别急着把它从多任务界面划走;真正拿掉安全网的动作,是划走它,不是它卡住本身。
录制途中手机重启,和强制退出 App 是一回事吗?
是一回事,而且拿走的更多。重启拆掉的是整个操作系统的状态,不只是这一个 App,所以写到一半的录制会像被强制退出那样丢掉——重启过程里同样没有哪一步在替你收尾文件。
App 不能每隔几秒就自动保存一下进度,避免这种情况吗?
画面本来就是边录边连续写入的,这部分并不缺。正常停止录制时真正多做的,是在最后写一段结构信息,告诉播放器该怎么读取之前写下的所有内容。这一步只在结尾执行一次,而且需要 App 的进程还活着才能跑起来——不管过程中帧本身存得多勤,强制退出拿走的正是这个「进程还活着」的前提。