当我的 iOS 应用程序在后台使用 ReplayKit 时的屏幕录制

Screen recording when my iOS app is in background with ReplayKit

我试过广播扩展。我已经通过目标添加了该扩展名。但是,我不知道如何在我的应用程序处于后台时进行录制。

我尝试记录的两种方式:

通过控制中心:我可以看到我的应用程序的目标名称,选择该名称后,我开始点击 Start Broadcast 开始录制,然后点击 Stop Record,但我的视频没有存储在相机胶卷或我的应用程序中。 Ref Link:

通过我的应用程序:按下“开始”按钮后,开始录制,我试图通过单击主页按钮从我的应用程序录制背景,显然录制已停止。 Ref Link: https://medium.com/@giridharvc7/replaykit-screen-recording-8ee9a61dd762.

无法 "direct" 在您的应用程序中存储处于后台的视频。 ReplayKit 版本 2 允许您在调用 "Broadcast Upload Extension" 的应用程序扩展中获取视频样本缓冲区。当你说 "Via Control center" 意味着你开始广播(不是录制),同时 iOS 找到你的应用程序扩展(不是你的应用程序)并启动它,然后开始发送视频样本缓冲区到扩展名。在此步骤中,您需要决定如何处理这些缓冲区。

我可以为您提出两种解决方案:

  • 您可以尝试将缓冲区传输到服务器(并在 将启动主应用程序)
  • 您可以尝试使用应用程序组将缓冲区保存到文件(共享 此数据与主应用程序),你可以找到例子 here.

但是你需要知道广播扩展是为缓冲区传输而设计的,而不是存储或重新渲染或者压缩或重新编码缓冲区。基于 CPU 时间和内存使用量 (±50 MB),扩展有很多限制,您可以尝试在那里做任何事情,但如果是 "heavy" 操作 iOS 将关闭扩展。