iOS 倍速播放渲染慢、暂停后还在继续播放等问题.md
本文围绕 iOS 端录像倍速播放的各类异常问题展开,先列举了 8 倍速渲染偏慢、画面时间与进度不同步、频繁跳帧、播放结束后时间未对齐、暂停后画面与进度仍继续播放、内存堆积易被系统杀掉等现象;再分析原因:固件未做倍速跳帧处理,视频获取帧率远超屏幕刷新率,导致倍速异常,且暂停时未停止取流线程,引发续播问题;最后给出方案:App 端按计算的跳帧间隔手动跳帧,暂停时立刻停止取流线程。
本文围绕 iOS 端录像倍速播放的各类异常问题展开,先列举了 8 倍速渲染偏慢、画面时间与进度不同步、频繁跳帧、播放结束后时间未对齐、暂停后画面与进度仍继续播放、内存堆积易被系统杀掉等现象;再分析原因:固件未做倍速跳帧处理,视频获取帧率远超屏幕刷新率,导致倍速异常,且暂停时未停止取流线程,引发续播问题;最后给出方案:App 端按计算的跳帧间隔手动跳帧,暂停时立刻停止取流线程。
iPhone 6 搭载的是 A8 芯片,iPhone 6s 搭载的是 A9 芯片。
该问题是由于切换到后台后,解码器会话会失效,当再次进入前台时,需要再次创建会话,但由于使用的视频通道没有变,继续播放接收到的很大可能是 P 帧,iOS P 帧的解码分为以下两种情况:
软解码使用的是 CPU 解码,CPU 进行大量的矩阵计算是非常的占用性能,导致手机功耗增加,电量耗尽更快。
iPhone 6 搭载的是 A8 芯片,iPhone 6s 搭载的是 A9 芯片,iPhone 6s 之前的苹果手机都不支持 HEVC 硬解码。
iOS 上使用 VideoToolbox 框架解码视频时,iPhone 6 进行软解码时 CPU 占用将增加大约 30%,而使用 iPhone 14 使用硬解码 CPU 占用增加不到 10%。
那么如何验证 iPhone 是否支持硬解码呢?
小组件在 iOS 14 和 macOS 11 及更高的版本上才可用,且只支持Swift和SwiftUI。

软件长期使用不卸载,并且随着软件不断更新,它的占用空间会越来越大。
比如我的 Xcode 用 App Cleaner 检测到竟然占用了 101G,可安装至今还不到 6 个月。
比如 JetBrains 家的 IDE 可以通过 JetBrains Toolbox 进行软件的卸载,但是它仍然不能进行彻底卸载,即使通过 App Cleaner 也不能彻底卸载,那么就需要我们手动删除了,那需要手动删除的文件或目录是哪些呢?
一命二运三风水,
四积阴德五读书,
六名七相八敬神,
九交贵人十养身。
昨天晚上重命名一个 Swift 项目,没想到问题还挺多的,花了点时间,今天再次尝试重命名项目,特此记录,供后续参考。
项羽 24 岁破釜沉舟,孙策 18 岁称霸江东,李世民 14 岁起兵成事。
你想拿年轻二字躲多久?
这句话除了励志鸡汤意义之外,就是明显的贩卖焦虑、偷换概念和混淆视听。