2

我正在使用我自己的自定义扩展在 iOS 中实现广播上传SampleHandler扩展RPBroadcastSampleHandler。问题很简单——我需要一种从扩展中优雅地结束广播的方法。

要求是在所有其他用户停止观看广播时停止广播并关闭屏幕录制。我可以很容易地发现这种情况。但是,似乎RPBroadcastSampleHandler并没有提供一种完成它的方法,至少不是一种优雅的方法。

根据官方文档,有一个broadcastFinished()广播结束的回调(当用户结束它时),并且有一种方法可以在出现错误时结束它 - finishBroadcastWithError(_:)。我可以提供一些不错的错误消息并以错误结束,但我宁愿只结束它而不显示任何错误 - 我不想指出有任何错误,因为这是预期的行为。

任何人都有办法实现这一目标?

4

1 回答 1

0

您应该使用 Obj-C 代码来完成。正如您在Telegram 官方存储库中看到的那样,他们使用 BroadcastUploadHelpers 来优雅地停止 sampleHandler。

void finishBroadcastGracefully(RPBroadcastSampleHandler * _Nonnull broadcastSampleHandler) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
[broadcastSampleHandler finishBroadcastWithError:nil];
#pragma clang diagnostic pop
}
于 2021-08-23T20:03:28.787 回答