屏幕共享接入指南
屏幕共享的应用场景众多,如:
在线课堂,老师分析桌面教学科技;
在线会议,与会者全屏分享会议内容;
在线医疗,议程分析患者电子病例;
远程协助,远程帮助其他人解决问题;
为了有效解决用户的这些痛点,屏幕共享功能应运而生。新版本的屏幕共享不在应用插件的形式,大家都知道,在 Chrome72 版本以前,集成屏幕共享功能必须要集成插件,这无异增加了开发者的难度;国内的网络无法访问谷歌商店,也无法下载插件,从而导致了该功能处处受限,不被大家所采用。新版本无需插件,只需简单调用几句代码即可拥有屏幕共享功能,屏幕共享还能选择打开关闭屏幕声音,如果屏幕共享了带声音的多媒体,该功能正合适哦,还有 anyRTC 的屏幕共享默认不采集音频的,如果想屏幕共享的时候输出音频,记得打开该功能。
上述讲了 web 端的屏幕共享,下面也介绍下 Native 端的屏幕共享吧,Windows 跟 MacOS 这里就不多介绍了,调用接口即可,简单方便;Android 和 iOS 使用屏幕共享,必须要打开自定义音视频采集模块,外部采集好音视频,往 SDK 塞音频、视频流即可。具体可前往查看接口文档。
Web 端屏幕共享工作原理
Web 端屏幕共享,实际上是通过创建一个屏幕共享的视频轨道对象来实现的。你可以调用 createScreenVideoTrack 方法来创建一个用于屏幕共享的本地视频轨道对象。采集屏幕共享的过程中浏览器会询问需要共享哪些屏幕,根据用户的选择去获取屏幕信息
在 anyrtc Web SDK 中,一个
ArRTCClient
对象同一时间只能发布一个视频轨道。因此如果你想要在发布屏幕共享的同时,还发布本地摄像头视频轨道,则需要创建两个ArRTCClient
对象,加入同一频道,一路发送屏幕共享轨道,一路发送摄像头视频轨道。
Chrome 屏幕共享
我们以 Chrome 浏览器为例在 Chrome 上屏幕共享,你可直接调用createScreenVideoTrack。
该功能要求 Chrome 72 或以上版本。如果你使用的软件版本不满足此要求,请使用屏幕共享插件实现在 Chrome 上共享屏幕。
分享音频
anyrtc Web SDK 支持在 Windows 平台的 Chrome 浏览器 74 及以上版本同时共享屏幕和本地播放的背景音。你需要在调用 createScreenVideoTrack 方法的withAudio
参数设为 enable
。
这样设置后,该方法会返回一个列表,包含屏幕共享的视频轨道对象和本地播放背景音的音频轨道对象。
注意:
使用这个方法后,还需要终端用户在屏幕共享的弹出框上勾选分享音频才能真正生效。
如果选择共享单个应用窗口,无法分享音频。
同时共享屏幕和开启视频
因为一个 ArRTCClient
对象只能发送一路视频轨道,所以如果要在一个发送端同时分享屏幕和开启摄像头视频采集,需要创建两个 ArRTCClient,一路发送屏幕共享轨道,一路发送摄像头轨道。
自己订阅自己,会产生额外的计费,如图:
开发注意事项
一个
ArRTCClient
对象只能发送一路视频轨道负责发布屏幕共享的用户的 UID 不要固定在同一个值,否则某些场景下同 UID 的共享流可能会引起互踢。
在屏幕共享的时候,本地流的 Client 不要订阅本地的屏幕共享流,否则会增加计费。
在 Windows 平台上进行屏幕共享时,如果共享的是 QQ 聊天窗口会导致黑屏。
更多好玩的用法
视频大小流,一个客户端发布两路视频流,一个大流,一个小流,其他客户端可根据自身网络情况拉去大小流。
流回退,客户端打开流回退功能后,SDK 自动检测当前网络的上下行,根据丢包率以及网络延迟等一些因素,自动把拉去的流变为小流,如果小流还不能满足当前的网络状况,会自动切换音频拉流,保证音频通信优先。
自定义音视频流,当本地摄像头不能满足当前需求的时候,可以把采集的音视频流往 SDK 里面塞,SDK 负责自定义音视频流的传输。
平滑上下麦,上麦时间维持在 200ms,点击上麦即刻能进行音视频通信,广泛应用于直播连麦、语音开黑等场景。
混音,播放在线或者本地音乐,跟谁本地声音一起发到远端。
人脸识别,向本地用户报告检测出的一系列结果,包括人脸距设备屏幕的距离。该功能可用于提醒用户注意用眼卫生,和屏幕保持一定距离。
还有未挖掘的玩法,等待你们的需求哦,只要需求合理,我们就能为您实现~
anyRTC 创业扶持计划
30 万免费分钟数,助力初创企业快速发展。
anyRTC 初创企业扶持计划,只要通过企业审核,联系客服加入 anyRTC 创业扶持计划,即可享受 30 万免费分钟数。获得分钟数可降低在实时音视频技术服务所产生的成本费用,零成本快速启动项目。
专属技术指导支持
anyRTC 为初创企业提供一对一专属客服,为客户提供专业、认真的服务,及时解答您的疑惑。并为客户提供专属技术指导,更快上手,轻松上线!
联系我们
联系电话:021-65650071
QQ 咨询群:580477436
ARCall 技术交流群:597181019
咨询邮箱:hi@dync.cc
技术问题:开发者论坛
获取更多帮助前往:www.anyrtc.io
评论 (2 条评论)