replaykit2屏幕共享 webRTC发送共享画面

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

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

主要需要解决的问题


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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值