【问题标题】:Is there a way to finish broadcast gracefully from within RPBroadcastSampleHandler?有没有办法从 RPBroadcastSampleHandler 中优雅地完成广播?
【发布时间】:2018-12-07 12:54:24
【问题描述】:

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

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

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

谁有办法实现这一点?

【问题讨论】:

  • 你有什么解决办法吗?
  • @iOSLifee 据我所知,没有办法做到这一点.. 但如果你想出任何好的解决方案,请告诉我
  • 好的,一定会让你知道的
  • 你有什么解决方案吗..因为我面临同样的问题,无法优雅地解雇
  • @YogeshDalavi 我们只是断开广播,在我们的应用程序中我们尝试打开RPSystemBroadcastPickerView 允许用户将其关闭.. 我们还没有找到优雅关闭它的方法(用户必须这样做AFAIK)

标签: ios swift broadcast replaykit rpbroadcastsamplehandler


【解决方案1】:

您应该使用 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
}

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多