You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在基于React与Ruby on Rails实现的Twilio视频通话中添加屏幕共享功能?

问题1:是否需要修改我的后端代码?

通常不需要调整Ruby on Rails后端的核心逻辑,仅需检查你后端生成Twilio访问令牌的代码:如果之前配置VideoGrant时没有对轨道发布类型做特殊限制,就完全不需要修改;如果之前做了严格的权限控制,仅允许发布音频、摄像头视频轨道,只需要调整VideoGrant的权限配置,放开屏幕共享轨道的发布权限即可。

问题2:如何为视频通话添加screen-sharing功能?

你可以直接在react前端侧完成开发,核心步骤如下:

  • 调用浏览器原生的getDisplayMedia接口获取屏幕共享媒体流,可根据需求配置是否同时捕获系统音频
  • 将获取到的屏幕共享媒体轨道,通过Twilio Video SDK提供的room.localParticipant.publishTrack()方法发布到当前通话房间
  • 其他参会端监听participant.trackPublished事件,识别到屏幕共享轨道后,将轨道挂载渲染到页面对应节点即可
  • 补充结束共享的逻辑:用户主动停止共享时,调用track.stop()终止轨道捕获,再调用unpublishTrack()将轨道从房间内移除即可

问题3:当我在视频通话中enable屏幕共享时,通话会自动切换为audio call吗?

不会。屏幕共享本质是在当前通话中额外发布一条视频类轨道(可选附带共享的系统音频),不会影响已有的摄像头视频、麦克风音频轨道的传输,除非你主动写逻辑停止发布摄像头轨道,否则通话会保持原有的视频通话状态,不会自动切换为纯音频通话。

内容的提问来源于stack exchange,提问作者Hossein Safari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:48:02