如何在没有 RPSystemBroadcastPickerView 的情况下以编程方式停止 ReplayKit 2 系统广播

How to programatically stop a ReplayKit 2 system broadcast without RPSystemBroadcastPickerView

我正在尝试实现广播上传扩展,我希望用户能够单击我的应用中的按钮来停止广播。

据我从文档中得知,停止系统广播的唯一方法是:

然而,我今天在 Facebook Messenger 上尝试屏幕共享功能,他们以某种方式绕过了系统 UI(仅停止流)。 当我点击停止按钮时,屏幕共享立即停止并且不显示系统 UI 或错误弹出窗口

他们是怎么做到的? 我最好的猜测是他们以某种方式获得了一个有效的 RPBroadcastController 对象,但我不知道如何获得。

终于搞清楚了。

你基本上只需要将 nil 传递给 finishBroadcastWithError。它会发出警告,因为该错误不可为空,但您可以通过以下方式使它安静下来:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
    [self finishBroadcastWithError:nil];
#pragma clang diagnostic pop