我的iOS应用在后台使用ReplayKit进行屏幕录制

时间:2019-02-01 18:38:43

标签: ios replaykit

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

我尝试记录的两种方法:

通过控制中心:选择该名称后,我可以看到我应用的目标名称,然后单击Start Broadcast,然后单击Stop Record开始记录,但是我的视频没有存储在Camera Roll或我的应用程序中。 Ref LinkReplayKit's RPSystemBroadcastPickerView not showing preferredExtension

通过我的应用程序:按开始按钮开始录制后,我正尝试通过单击主屏幕按钮来录制我的应用程序的背景,显然录制已停止。 Ref Linkhttps://medium.com/@giridharvc7/replaykit-screen-recording-8ee9a61dd762

1 个答案:

答案 0 :(得分:3)

在后台运行视频时,没有“直接”方式将视频存储在您的应用程序中。 ReplayKit版本2允许您在名为“广播上载扩展”的应用扩展中获取视频样本缓冲区。当您说“通过控制中心”时,它意味着您开始广播(而不是录制),同时iOS找到您的应用程序扩展名(而不是您的应用程序)并启动它,然后开始将视频样本缓冲区发送到扩展名。在此步骤中,您需要决定如何处理这些缓冲区。

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

  • 您可以尝试将缓冲区传输到服务器(并在以下情况下下载视频: 主应用程序将启动)
  • 您可以尝试使用“应用组”将缓冲区保存到文件中(以共享 该数据与主应用程序),您可以找到示例 here

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