【新知实验室 TRTCIM】实时互动课堂最佳实践

news2025/2/22 12:27:11

【新知实验室 TRTC&IM】实时互动课堂最佳实践

  • 一、新知实验室-TRTC腾讯云音视频产品体验官计划
    • 活动简介
  • 二、产品简介
    • TRTC
    • IM
  • 三、最佳实践
    • 3.1 官方快速上手TRTC(快速跑通)
      • 3.1.1 注册腾讯云账号
      • 3.1.2 使用实时音视频(需先开通)
      • 3.1.3 创建应用
      • 3.1.4 查看项目(查看密钥和快速上手操作)
      • 3.1.5 运行快速上手项目(静态页面)
    • 3.2 使用TRTC&IM构建实时互动课堂
      • 3.2.1 项目简介(trtc-education-electron)
      • 3.2.2 设置即时通讯IM的 Web 端可同时在线个数
      • 3.2.3 构建项目(使用云服务器)
        • 3.2.3.1 构建环境
        • 3.2.3.2 克隆代码
        • 3.2.3.4 ==修改官方留的Bug==
        • 3.2.3.5 安装依赖
        • 3.2.3.6 测试&打包
      • 3.2.4 在线课堂运行
  • 四、总结

一、新知实验室-TRTC腾讯云音视频产品体验官计划

活动简介

活动链接:https://marketing.csdn.net/p/637c852aedd21c0ef20754a7d7635e6d
活动链接:https://marketing.csdn.net/p/637c852aedd21c0ef20754a7d7635e6d
活动链接:https://marketing.csdn.net/p/637c852aedd21c0ef20754a7d7635e6d

在线上线下一体化、虚拟现实加速融合的趋势下,音视频已经演进成一种基本能力,深刻变革了社会的交互方式。未来,音视频作为全真互联时代的重要基石,将持续推动互联网和实体产业的数字化创新与升级。
腾讯云实时音视频TRTC基于腾讯20多年在音视频技术上的深度积累,主打低延时互动直播和多人音视频两大解决方案,致力于帮助全球开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
在这里插入图片描述



二、产品简介

TRTC

TRTC全称(Tencent Real-Time Communication)即腾讯实时音视频服务,定位是解决实时通信的云服务,主要功能是基于互联网的,接收、处理、转发和保存大流量的音视频流数据,主要用于直播、视频会议等场景;围绕直播提供了一些简单IM功能;提供demo和易用的SDK,方便不同终端快速接入;允许用户自定义采集和渲染数据源。

IM

即时通信(Instant Messaging,IM)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。



三、最佳实践

3.1 官方快速上手TRTC(快速跑通)

腾讯云音视频官方提供了一个快速上手案例,这里呢,我们使用Web项目来为大家演示一下(我在前端方面也是个小白)

3.1.1 注册腾讯云账号

首先注册腾讯云的账号,新用户有好礼相赠
注册链接:腾讯云
注册链接:腾讯云
注册链接:腾讯云

3.1.2 使用实时音视频(需先开通)

在这里插入图片描述

3.1.3 创建应用

在这里插入图片描述

在这里插入图片描述

3.1.4 查看项目(查看密钥和快速上手操作)

在这里插入图片描述
在这里插入图片描述

3.1.5 运行快速上手项目(静态页面)

在这里插入图片描述
在文件夹中打开Index.html文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,您已成功跑通TRTC的Web快速上手项目, 同时您也可以设置好参数,将其托管到OSS存储桶中,进行测试







3.2 使用TRTC&IM构建实时互动课堂

因为疫情原因,全国的大部分老师和学生都在进行网课学习,同时在前段时间(2022年11月9日),又出现了网课入侵这种非常恶劣的事件,那么在这里,将为大家演示如何使用TRTC&IM为老师和同学构建一个线上实时互动课堂,项目由 腾讯即时通信IM团队提供

3.2.1 项目简介(trtc-education-electron)

TRTC 实时互动课堂是一款开源的在线课堂软件,支持一名教师给多名学生在线上课,一个课堂最多同时支持 300 人在线实时互动。如果开启旁路直播、CDN推流服务,可支持上万人在线观看。本软件基于腾讯云实时音视频通信(Tencent Real-Time Communication, TRTC)、腾讯云即时通信(Tencent Instant Message, TIM)、Electron、React 和 Webpack 等构建。

官方项目地址:https://github.com/TencentCloud/trtc-education-electron

GitCode项目地址(已修复TIMService.ts)Bug:https://gitcode.net/fly1574/trtc-education-electron-fixed



3.2.2 设置即时通讯IM的 Web 端可同时在线个数

IM控制台:https://console.cloud.tencent.com/im
在这里插入图片描述
在这里插入图片描述


3.2.3 构建项目(使用云服务器)

这里使用的是一台云服务器(没有摄像头、麦克风),读者们也可以根据自己的情况使用本地的win电脑直接开发

3.2.3.1 构建环境

软件版本
NodeJSv16.13.1
git2.25.1
yarn1.22.15
vscode1.73.1

3.2.3.2 克隆代码

git clone https://github.com/TencentCloud/trtc-education-electron.git

在这里插入图片描述


#### 3.2.3.3 设置AppID和SK(记得保存) ```js 修改项目中的配置文件 src/main/config/generateUserSig.js ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/c4a83a43f673450c9ff47a5ed6b29764.png)

3.2.3.4 修改官方留的Bug

在运行这个demo的时候,还是出了一点bug的,到现在发现俩,也和腾讯的在线支持反馈了,他们说会更新,代码,但是博文发出时,github上的代码bug仍旧是没有修复,所以需要手动添加 .toString()

# 修改文件 
# trtc-education-electron\src\renderer\core\room-core\TIMService.ts
修改该文件的186238行左右,如下

$ 修改前
    this.groupID = groupID;
    const realGroupID = groupID;
$ 修改后
    this.groupID = groupID.toString();
    const realGroupID = groupID.toString();

在这里插入图片描述
在这里插入图片描述

3.2.3.5 安装依赖

$ cd trtc-education-electron/
# 安装yarn
$ corepack enable
# 查看yarn版本
$ yarn --version
# 指定 npm 国内镜像
$ npm config set registry=https://registry.npm.taobao.org/
# 指定 Electron 的国内镜像地址
$ npm config set ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ 
# 安装依赖
$ yarn

在这里插入图片描述

3.2.3.6 测试&打包

因为该云服务器没有摄像头和麦克风,这里的测试会失败,直接进行打包,然后将生成的.exe文件直接在本地电脑安装进行测试

# 如果需要先测试
$ yarn start

# 直接打包
$ yarn package

在这里插入图片描述

3.2.4 在线课堂运行

必须先开启程序所运行主机的摄像头和麦克风权限

教师创建课堂
在这里插入图片描述

在这里插入图片描述

学生安装程序后,加入课堂
在这里插入图片描述



四、总结

作为一个从来没有使用过TRTC的新人,快速跑通官方的演示案例还是很轻松的;在后面的那个TRTC&IM项目trtc-education-electron实时在线课堂,还是挺简单的,不过还是很意外的帮助官方发现了俩小bug。


整体看来上手TRTC还是很快,而且拓展性很强,还有一点就是腾讯云音视频的在线技术支持团队,的确反应很快速!好的产品离不开好的技术支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java基础—String

我们都知道 创建一个字符串最简单的方式是 String meaasge "java资讯";当然还可以用构造来创建 (不推荐,开发中不要用) String str2new String("java资讯");这两种创建最主要的区别在于,一个在公共池中&…

gitlab CI/CD 自动化部署vue项目到阿里云服务器步骤

目录1,gitlab托管vue项目2,本地项目连接到远程仓库3,设置gitlab-runner4,编写yml文件5,部署到阿里云服务器(本地设置)5.1 安装相关依赖5.2 vue项目中添加deploy.js文件5.3 注册deploy命令5.4 验…

文本生成图像工作简述2--常用数据集分析与汇总

文本到图像的 AI 模型仅根据简单的文字输入就可以生成图像。用户可以输入他们喜欢的任何文字提示——比如,“一只可爱的柯基犬住在一个用寿司做的房子里”——然后,人工智能就像施了魔法一样,会产生相应的图像。 文本生成图像(te…

实验2:Arduino的nRF24L01双向收发实验

实验结果: 00节点向01发送:00ReqMesFor01 01节点向00发送:CodeNewNiceBoy 并且在串口打印出相应信息 硬件电路: 01 软件 00节点代码: /*00 */#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(9, 10);// CE, CSNconst char te…

dolphinscheduler 2.0.5 性能手动测试

目录&#x1f42c;官方配置文件说明&#x1f42c;测试并发量&#x1f420;线程数量设置100&#x1f420;线程数量设置200&#x1f420;线程数量设置500&#x1f42c;测试结论&#x1f42c;官方配置文件说明 官方说明 master.exec.threads&#xff1a; master工作线程数量,用于…

智能晾衣架(二)--功能实现

本文素材来源于红河学院 工学院 作者&#xff1a;赵德森 张艺锦 潘志慧 曹紫康 指导老师&#xff1a;江洁 张龙超 1. 自动升降功能 我们设计时采用了热释电传感器&#xff08;人体红外传感器&#xff09;&#xff0c;在热释电传感器感应到有人靠近时&#xff0c;晾衣架通…

C++:内存管理:C++内存管理详解(二):带你攻破内存管理

前言&#xff1a; 任何程序运行起来都需要分配内存空间存放该进程的资源信息&#xff0c;C程序也不例外。C程序中的变量、常量、函数、代码等等信息所存放的区域都有所不同&#xff0c;不同的区域又有不同的特性。 欺骗C进程 每一个C语言的程序被执行起来的时候系统为了方便开…

字符串的简单介绍和字符串的大小比较

以前就写过一篇关于String的文章&#xff0c;今天再来写一篇&#xff0c;更加深入了解一下String类 &#x1f550;1.String类的定义 &#x1f551;2.String类的创建 &#x1f552;3.字符串的大小比较 1.之前在C语言中我们已经学到了字符类型&#xff0c;但是C语言没有Strin…

Oracle-Rman duplicate文件坏块问题处理ORA-19849 19612

前言: 最近&#xff0c;在使用rman duplicate进行备库环境搭建时&#xff0c;遇到了ORA-19849 19612坏块报错&#xff0c;最终分析是发现由于网络的配置导致。 问题: 在 ORACLE 12.2.0.1.180417 通过RMAN duplicate进行备库初始化&#xff0c;在复制文件的过程中&#xff0c;…

FTP服务器移植到Linux开发板

FTP服务器移植到Linux开发板 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录FTP服务器移植到Linux开发板前言一、vsftpd源码下载二、vsftpd移植及配置1.vsftpd移植2.vsftpd配置2.1 配置vsftpd.conf2.2 添加新用户2…

LVS+Keepalived群集

目录 一.keeepalived工具介绍 1.1 专为LVS和HA设计的一款健康检查工具 1.2 Keepalived实现原理剖析 1.3 VRRP工作过程 1.4 Keepalived&#xff0c;VRRP及其工作原理 1.5 Keepalived体系主要模块及其作用 二、LVSKeepalived 高可用群集的搭建步骤 1、配置负载调度器&…

项目管理(PMO的作用)

项目管理办公室 (PMO) 是对与项目相关的治理过程进行标准化&#xff0c;并促进资源、方法论、工具和技 术共享的一个组织结构。PMO 的职责范围可大可小&#xff0c;从提供项目管理支持服务&#xff0c;到直接管理一个 或多个项目。 PMO的三种类型&#xff1a; PMO的作用&#…

ppt背景图片怎么设置?6步教你快速搞定!

在制作 ppt的过程中&#xff0c;需要将一些内容进行设置&#xff0c;来保证整体美观&#xff0c;也就是将背景图片设置好。背景图片设置的好&#xff0c;可以很好地体现页面上的内容&#xff0c;提高页面上的内容展示效果。所以大家在制作 ppt时&#xff0c;需要将一些背景图片…

进程和线程详解

目录 前言&#xff1a; 操作系统定位 并发 并行 并发 进程 描述 PCB 管理 内存管理 进程间通信 线程 小结&#xff1a; 前言&#xff1a; 当一个程序运行起来时&#xff0c;操作系统要为之分配一些资源&#xff0c;这样的运行起来的程序称之为一个进程。为了有效解…

huffman编译码

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 利用哈夫曼编码进行信息通信可以较大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对…

Python期末复习题:文件

Python期末复习题&#xff1a;文件 文章目录Python期末复习题&#xff1a;文件一、二手房数据统计二、学生成绩统计一、二手房数据统计 附件文件house.csv 中存储一些二手房数据&#xff0c;中文编码为GBK&#xff0c;对文件中的数据进行统计分析。 文件中数据格式如下所示&…

理解Attention机制的query key value

背景 在Attention机制引入前&#xff0c;自然语言处理里的深度学习模型有以下缺点&#xff1a; 长序列的推理存在信息损失/梯度消失&#xff1a;输入序列越长&#xff0c;模型越难保存初始输入信息。运算量大并且不能并行&#xff1a;RNN的每一步推理都是基于上一个步的结果。…

Python小游戏自己动手编写,你能写出几个(分享版)

今天分享一个有趣的Python游戏库freegames&#xff0c;它里面包含经典小游戏&#xff0c;像贪吃蛇、吃豆人、等等。可以通过1行代码重温这些童年小游戏&#xff0c;后面还会分享源码&#xff0c;可以自己学习游戏编写&#xff0c;相信你会超有成就感&#xff01; Paint 涂鸦 在…

Springboot Websocket一般封装方法

此方法不是唯一&#xff0c;只是自己对于Springboot中关于Websocket处理思路比较清晰的一种&#xff0c;在此记录下来。总共不过就四个文件而已。 一、创建Springboot项目&#xff0c;添加不可或缺的pom <dependency><groupId>org.springframework.boot</grou…

内存模块 --- 基础扫盲

SDRAM synchronous dynamic random-access memory 同步动态随机存储器 同步&#xff1a;需要同步时钟支持工作&#xff0c;内部命令的发送与数据的传输都是以这个时钟为基准 动态&#xff1a;内部的存储阵列需要不断地刷新来保证数据不丢失 随机&#xff1a;可以自由地在指定地…