029-89353355
乐鱼体育直播下载 contact us
手机:18991830957
座机:029-89353355
Q Q:359316042
邮箱:xr@x-barcode.com
地址:西安市雁塔区雁塔西路158号双鱼大厦A座13层
企业公众号
产品介绍
本系列为即构科技与「极客时间-每日一课」栏目共同打造的深度技术分享内容,视频发布于「极客时间app-每日一课」栏目。
实时屏幕共享功能,在视频会议、游戏直播、在线教育等场景中已广泛被应用。近日,主打屏幕分享的社交应用「Squad」被Twitter收购,让我们正真看到了实时屏幕共享融于更多行业,开启丰富玩法的趋势。
作为实时屏幕共享的第一步,录屏采集在不同终端和系统上的实现方式不一样。之前我们已分享了Android端实现录屏采集的方式,可以戳下面查看:
在iOS端,录屏采集的范围大致上可以分为两种:当前App屏幕内和整个电子设备屏幕。下面将对屏幕共享使用场景,iOS屏幕共享的实现,以及在实现过程中iOS系统版本的限制做详细描述。
从iOS 9开始,苹果提供了ReplayKit.framework满足开发者实现屏幕录制的需求。因为录制功能涉及到用户隐私,所以启动录制前,会弹框提示用户是否允许录制,同意后才能开始录制。
录制时,开发的人能将当前App屏幕内的画面和声音录制下来,同时也可开启麦克风录制设备外部声音,比如手游直播时,边玩边讲解。
Broadcast Upload Extension是在录制配置界面完成后,在录制期间触发事件回调和录制的音视频数据回调,开发者可在此回调中处理逻辑,比如把获取到音视频数据传输给第三方流媒体服务。
在录制过程中,可通过RPBroadcastController做开始,暂停,恢复,完成等操作。当录制被其他进程打断(比如打电话)进入后台,默认是暂停录制,当进入前台后,系统会弹窗提示用户是否恢复录制,若选择恢复,则执行恢复录制操作,反之,则执行完成录制操作。
RPScreenRecorder新增了CameraEnable。在录制时,可开启或关闭前置摄像头,开启后,摄像头采集的画面将显示在主屏幕中,同时新增了CameraPreviewView,可自定义摄像头采集视频后预览视图的位置。此功能应用在如游戏直播等场景时,在直播画面可以显示主播的头像。
从iOS 11开始,苹果提供了升级版本的ReplayKit 2,拥有Broadcast Services的App只要安装在手机上,就可以在通过iOS系统的控制中心进行系统录制,出现在可选应用的选择列表中。同时,录制的范围将是整个手机屏幕。
在App内启动采集屏幕数据和音频数据时,RPScreenRecorder能够最终靠Capture的方式,在回调里直接实时获取采集完成的音视频数据,开发的人能对这一些数据做自身的业务处理逻辑,比如合成一个视频文件。
因为优先级的原因,在App内通过ReplayKit录制或广播时会被系统的屏幕录制打断,并以RPScreenRecorderDelegate的方式通知App,此时App内的录制会被忽略,App应该更新UI提示用户。
从iOS 12开始,ReplayKit 2未解决录制电子设备屏幕(系统级录制)时只能从系统控制中心启动的问题,新增了RFSystemBroadcastPickerView,这个视图和在控制中心长按录制时弹出的视图一样,可以选择性的使用Broadcast Service进行广播。
虽然是在App内启动的录制,但是录制的是整个电子设备屏幕,并且PickerView启动的录制能够最终靠系统控制中心关闭,系统控制中心启动的录制能够最终靠PickerView关闭。
为了防止自己的App内容被录制或者广播出去,比如敏感的音频或视频,以及其他敏感信息,能够正常的使用UIScreen.isCaptured或监听UIScreenCapturedDidChangeNotification来判断当前是否正在使用屏幕录制,如果是则停止播放音频或者隐藏播放的视频。
有种特殊情况是Airplay Screen Mirroring,同屏交互,此时在判断UIScreen.isCaptured的基础上,还需要判断nt是否等于1,如果是,则根据自身的需求对App的内容采取保护措施。
从iOS 9~12,系统能力的不同影响着录屏采集的实现方式。综合看来,要实现当前App屏幕内录屏和整个电子设备屏幕的录制,主要的方式有:
第一,如果是录制当前App屏幕的内容,有两种方式,一种是通过 RPScreenRecorder 获取采集的数据,另一种是,自己实现或使用其它拥有broadcast service能力的App,进行屏幕采集和录制。
第二,如果是录制整个电子设备屏幕的内容,也有两种方式,一种是通过RPSystemBroadcastPickerView在App内唤起系统录制,一种是通过手机控制中心的录制按钮唤起系统录制,在开始系统录制前,要选择一个拥有broadcast service能力的App,该App会把采集到音视频数据推流到指定流媒体服务器。
如果是自己实现broadcast service,可依据自己需求,制定UI界面,实现信息获取和校验等个性化功能,充分的利用该功能带来的便利性,让自己的App更为丰富和强大。
上一篇:八爪鱼收集器怎样用 爬虫软件装置 下一篇:2023-2025年中国巡检条码