ios - 有没有办法从 RPBroadcastSampleHandler 中优雅地完成广播?

标签 ios swift broadcast replaykit rpbroadcastsamplehandler

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

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

基于official documentation ,有一个broadcastFinished()广播完成时的回调(当用户结束它时),并且有一种方法可以在出现错误时完成它 - finishBroadcastWithError(_:) 。我可以提供一些不错的错误消息并以错误结束它,但我更愿意结束它而不显示任何错误 - 我不想表明存在任何错误,因为这是预期的行为。 p>

有人有办法实现这一目标吗?

最佳答案

您应该使用 Obj-C 代码来完成此操作。正如您在 Telegram Official repository 上看到的那样他们使用 BroadcastUploadHelpers 来优雅地停止 SampleHandler。

void finishBroadcastGracefully(RPBroadcastSampleHandler * _Nonnull broadcastSampleHandler) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
[broadcastSampleHandler finishBroadcastWithError:nil];
#pragma clang diagnostic pop
}

关于ios - 有没有办法从 RPBroadcastSampleHandler 中优雅地完成广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669991/

相关文章:

c++将数据发送到多个UDP套接字

iphone - 与 iOS 上的模型- View - Controller 相关的概念问题

ios - 如何释放在方法中创建的字符串?

swift - 在 ios 8 中使用蓝牙发送到外设的数据量

swift - 枚举的原始值,类/结构的默认值,有什么不同?

c++ - 从 Swift 访问 C++ 枚举

apache-spark - 在另一个数据框的UDF中时如何引用数据框?

ios - 使用 Alamofire 下载后等待 segue 时处理用户交互

ios 在 Masonry 中设置 uiscrollview 的 contentsize

node.js - Node : how to communicate between two processes on two servers