美文网首页iOS
ios webRTC 和 replaykit2屏幕共享

ios webRTC 和 replaykit2屏幕共享

作者: 朝阳独行者 | 来源:发表于2021-05-08 17:32 被阅读0次

    iOS 出了replaykit2 后实现了系统屏幕录制功能,终于不在只能应用内录制了,在外部宣讲ppt,变的容易了许多,如何创建使用这个网上有很多extension使用的方法,我在这里也不想多赘述,毕竟是固定方式方法

            我这里想讲讲关于如何将在extension中录制的视频流传回主app并将视频流发送到远端,这才是最关键,也是replaykit2这个功能的难点
    

    主要需要解决的问题

    1.extension app 和主app 间的通信问题,涉及到进程间的通信

    2.将共享的视频转换成可以传输的数据类型,在转回CMSampleBufferRef,用于编码或者其他

    3.共享与摄像头之间的切换问题 即 摄像头 与录制的开关问题

    4.extension app共享屏幕 只有50M的内存,峰值超过就会被系统杀死,结束共享

    首先说第一个问题 :
    

    1.通信问题 使用socket 连接 主app做server端 extension做client端 ,用于将录制的视频数据传回到主app

    使用 CFNotificationCenterRef 做状态消息的通知传递
    

    2.将录制的视频数据转为NSData 类型通过socket 发送到 主应用在转换成CMSampleBufferRef,其中在转为NSData类型的过程中可以将视频方向 录制的分辨率一起带上,录制时就可以横竖屏无感切换了

    3.录制视频时需要暂停摄像头的采集,停止在开启视频,需要调用系统的stopCapture 和 finishBroadcastWithError 来开启暂停

    说说我的项目 我的项目是使用 webRTC实现音视频的通话,与会议功能,使用replaykit2 实现屏幕共享功能,共享的屏幕传到远端的通话中或者会议中,目前实现了使用ios原生开发,和使用reactive-native开发ios和安卓端的,这一块的功能都已经完整实现,并且已经使用半年,目前运行和反馈良好,稳定

    代码部分的问题和使用可以私信联系我

    ** 应用内共享**

    image

    ** 系统 屏幕共享**

    81620466891_.pic_hd.jpg

    其他应用内容屏幕共享

    image

    相关文章

      网友评论

        本文标题:ios webRTC 和 replaykit2屏幕共享

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