【新知实验室】-多人视频会议体验

新知实验室_多人视频会议体验

关于腾讯发布的 实时音视频(Tencent RTC) 产品:是一个包含 UI 的开源音视频组件,通过集成 TUIRoom,您可以在业务中快速上线音视频房间,屏幕分享,聊天等功能。Web 端 TUIRoom 基础功能。

组件集成

TUIRoom 组件使用 Vue3 + TS + Pinia + SCSS 开发,要求接入项目使用 Vue3 或 Vue2.7,支持 typescript。

开通产品

1.创建应用,TRTC 是基于腾讯云提供服务的,需要先创建 TRTC 应用,才能使用服务,应用的 SDKAppID 和 SecretKey 是服务认证凭据,需要认证后才能成功跑起来demo。

创建应用送 10000 分钟免费体验;具体的信息,也可以通过控制台进行查看

TRTC 提供无 UI 集成 和 有 UI 集成 两大类

 无UI集成:

仓库里有5个demo:

base-js
base-react-next
quick-demo-js
quick-demo-vue2-js
quick-demo-vue3-ts

我操作的是最简单基础的base-js,用 script 方式引入了 TRTC sdk,根据上一步获取到的SDKAppID 和 SecretKey对/base-js/js/debug/GenerateTestUserSig.js中的信息进行修改,修改完成即可进入房间;

步骤1:创建 Client 对象 主要参数如下

在使用 TRTC Web SDK 中,经常会接触到以下对象:

Client 对象,代表一个本地客户端。Client 类的方法提供了进入通话房间、发布本地流、订阅远端流等功能。

Stream 对象,代表一个音视频流对象,包括本地音视频流对象 LocalStream 和远端音视频流对象 RemoteStream。Stream 类的方法主要提供音视频流对象的行为,包括音频和视频的播放控制。

步骤2:进入音视频通话房间 主要参数如下:

调用 Client.join() 进入音视频通话房间。

可以通过相同的房间号进入房间

也可以进行实时屏幕分享

步骤1:创建屏幕分享流

屏幕分享流包含视频流和音频流。其中音频流分为麦克风音频或者系统音频。

// 通常情况下,建议给 userId 加上前缀 `share_`,用来标识这是用于屏幕分享的客户端对象。
const userId = 'share_userId';
const roomId = 'roomId';


// good 正确用法
// 仅采集屏幕视频流
const shareStream = TRTC.createStream({ audio: false, screen: true, userId });
// or 采集麦克风音频及屏幕视频流
const shareStream = TRTC.createStream({ audio: true, screen: true, userId });
// or 采集系统音频及屏幕视频流
const shareStream = TRTC.createStream({ screenAudio: true, screen: true, userId });


// bad 错误用法
const shareStream = TRTC.createStream({ camera: true, screen: true });
// or
const shareStream = TRTC.createStream({ camera: true, screenAudio: true });

步骤2:初始化屏幕分享流

初始化时浏览器会向用户请求屏幕共享的内容和权限,如果用户拒绝授权或者系统未授予浏览器屏幕分享的权限,代码会捕获到 NotReadableError 或者 NotAllowedError 错误,这时需要引导用户进行浏览器设置或者系统设置开启屏幕共享权限,并且重新初始化屏幕分享流。

try {
  await shareStream.initialize();
} catch (error) {
  // 当屏幕分享流初始化失败时, 提醒用户并停止后续进房发布流程
  switch (error.name) {
    case 'NotReadableError':
      // 提醒用户确保系统允许当前浏览器获取屏幕内容
      return;
    case 'NotAllowedError':
      if (error.message.includes('Permission denied by system')) {
        // 提醒用户确保系统允许当前浏览器获取屏幕内容
      } else {
        // 用户拒绝/取消屏幕分享
      }
      return;
    default:
      // 初始化屏幕分享流时遇到了未知错误,提醒用户重试
      return;
  }
}

步骤3:创建负责进行屏幕分享的客户端对象

通常情况下,建议给 userId 加上前缀 share_,用来标识这是用于屏幕分享的客户端对象。

const shareClient = TRTC.createClient({
  mode: 'rtc',
  sdkAppId,
  userId, // 例如:‘share_teacher’
  userSig
});
// 客户端对象进入房间
try {
  await shareClient.join({ roomId });
  // ShareClient join room success
} catch (error) {
  // ShareClient join room failed
}

步骤4:发布屏幕分享流

通过第一步创建的客户端对象进行发布。发布成功后,远端就能收到屏幕分享流。

try {
  await shareClient.publish(shareStream);
} catch (error) {
  // ShareClient failed to publish local stream
}

总结:

        音视频以及屏幕分享都很流畅,界面简洁 流程简化 实用性拉满,感兴趣的同学可以体验一下;

详情请参考:实时音视频 集成 TUIRoom (Web)-含 UI 集成方案-文档中心-腾讯云 (tencent.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值