【发布时间】:2019-02-01 18:38:43
【问题描述】:
我已经尝试过广播扩展。我已经通过目标添加了该扩展。但是,我不知道如何记录我的应用程序何时处于后台。
我尝试记录的两种方式:
通过控制中心:我可以看到我的应用程序的目标名称,选择该名称后,我点击Start Broadcast开始录制,然后点击Stop Record,但我的视频没有得到存储在相机胶卷或我的应用程序中。 Ref Link:ReplayKit's RPSystemBroadcastPickerView not showing preferredExtension
通过我的应用程序:一旦按下开始按钮,开始录制,我试图通过单击主页按钮从我的应用程序录制背景,显然录制已停止。 Ref Link:https://medium.com/@giridharvc7/replaykit-screen-recording-8ee9a61dd762.
【问题讨论】:
-
“通过我的应用程序” - 据我所知,这种方法行不通。您无法从您的应用程序开始录制,按下主页按钮,并期望继续录制。 “通过控制中心” - 您必须实际显示一些代码才能查看问题所在。
-
RPSystemBroadcastPickerView,这给出了“按下主页按钮,并期待录制继续”。 @TheNextman 。但是,我无法通过我的应用检测到我的录制何时完成。 -
BroadcastExtension将保存的文件保存到自己的文件夹中,您需要手动将文件复制到应用程序的文件夹,然后将文件保存到图库。 -
是的。我理解
BroadcastExtension背后的概念。广播完成后,不会调用 asset.finishWriting{}。你知道如何让这个完成处理程序自动调用吗?但是,在我们录制时,如果我们在processSampleBuffer中遇到任何错误,asset.finishWriting{} 会自动调用它。但是,记录完成没有任何错误,这个函数没有被调用。 -
我的代码也有同样的问题,所以我将 sleep 函数放置了 2 秒,这让我的完成处理程序最终创建了文件。