美文网首页
2024-07-30 如何优雅的结束广播

2024-07-30 如何优雅的结束广播

作者: 小白中的小白丶 | 来源:发表于2024-07-30 01:08 被阅读0次

    好久没这么兴奋了,解决了很长时间自己棘手的问题。
    因为项目需要,最近自己着手了ios开发,主要业务是拿到苹果手机的共享原生屏幕流,因为我们的主项目是h5项目,所以我还需要把这个流发到h5上,这里面也涉及了很多跨平台交互的问题,但是这次文章先不谈这个难点。
    这次主要谈谈ios上建立的广播扩展,如何优雅的结束这次广播
    问题:
    我正在使用自己的自定义SampleHandlerRPBroadcastSampleHandler在iOS中实现一个广播上传扩展。问题很简单--我需要一种在扩展中优雅地结束广播的方法。要求是当所有其他用户停止观看广播时,停止广播并关闭屏幕录制。我可以很容易地侦测到这种情况。然而,RPBroadcastSampleHandler似乎没有提供一种完成它的方法,至少不是一种优雅的方法。基于apple的开发者文档,在广播结束时(当用户结束时)有一个[broadcastFinished()]回调,并且有一种方法可以在出现错误时完成它- [finishBroadcastWithError(_:)]。我可以提供一些很好的错误消息,并以错误结束它,但我更喜欢在结束它时根本不显示任何错误-我不想指出有任何错误,因为这是预期的行为。

    解决方案:
    Stack Overflow用户
    发布于 2021-08-23 20:03:29
    您应该使用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
    }
    

    真的很厉害,这个方法,巧妙的运用了编译器的指令,让nil作为参数传进去也没有报错,也优雅的完成了我们停止广播的任务。

    相关文章

      网友评论

          本文标题:2024-07-30 如何优雅的结束广播

          本文链接:https://www.haomeiwen.com/subject/oxkwhjtx.html