为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第10天 TRTC在线视频会议入门

标签:
Java

课程名称: SpringBoot+Vue3 项目实战,打造企业级在线办公系统
课程章节: 第6章 TRTC在线视频会议
主讲老师: 神思者

课程内容

上一章在Web页面上可以创建各种会议申请,然后切换到部门经理或者总经理身份,可以对这些会议申请执行审批。线下会议还好说,到了开会的的时候,参会人都去某个会议室。至于说这些人怎么线下开会,程序不用过多干预。但是线上会议,参会人要用视频方式交流,这就得开辟视频会议室了。

img

视频会议室要依赖于腾讯云的TRTC技术,帮我们把参会人的视频数据复制,然后转发给其他的参会人。这样不会出现因为参会人的增多,导致视频质量下降。如果不使用TRTC技术,仅凭我们本地的带宽,参会人越多,大家看到的视频质量就越差。

配置后端项目

之前已经开通了腾讯云TRTC服务,所以我们到后端项目上配置一下。前端页面想要连接上TRTC服务器上面的视频会议室,首先需要创建TrtcClient对象,创建这个对象需要用到3个参数,分别是TRTC的AppID,用户UserId,还有用户签名。用户签名是用TRTC的AppID、密钥和UserId生成的。如果用户签名在前端页面计算生成,势必我们要在前端页面保存TRTC的AppID和密钥,任意开发者查看HTML源代码都能看到这些信息,所以决不能在前端页面生成用户签名。

img

正确的做法是在后端项目生成用户签名,我们在config包里面创建tencent包,然后创建一个TrtcUtil工具类,用来生成用户签名。

然后在MeetingController.java类中定义获取用户签名的Web方法。

查询视频会议室RoomID

每个视频会议室都有RoomID,这个RoomID是保存在Redis里面的,我们可以通过会议的UUID查找到RoomID。但是只有在会议开始前20分钟,工作流项目的定时器才会生成这个RoomID。

用户在前端页面进入到meeting_video.vue页面之后,需要通过Ajax查询这个会议室的RoomID,然后让TrtcClient连接到视频会议室,所以我们要写后端的Web代码返回RoomID。

1. 编写业务层代码

MeetingService.java接口中,定义抽象方法。

public interface MeetingService {
    ……
    public Long searchRoomIdByUUID(String uuid);
}

MeetingServiceImpl.java类中,实现抽象方法。

public class MeetingServiceImpl implements MeetingService {
    @Autowired
    private RedisTemplate redisTemplate;
    
    ……
    @Override
    public Long searchRoomIdByUUID(String uuid) {
        if (redisTemplate.hasKey(uuid)) {
            Object temp = redisTemplate.opsForValue().get(uuid);
            long roomId = Long.parseLong(temp.toString());
            return roomId;
        }
        return null;
    }
}

2. 编写Web层代码

创建SearchRoomIdByUUIDForm.java类,封装Ajax提交的请求。

@Data
@Schema(description = "查询在线会议室房间ID")
public class SearchRoomIdByUUIDForm {

    @NotBlank(message = "uuid不能为空")
    @Schema(description = "uuid")
    private String uuid;
}

MeetingController.java类中,定义Web方法。

public class MeetingController {
    ……
    @PostMapping("/searchRoomIdByUUID")
    @Operation(summary = "查询会议房间RoomID")
    @SaCheckLogin
    public R searchRoomIdByUUID(@Valid @RequestBody SearchRoomIdByUUIDForm form) {
        Long roomId = meetingService.searchRoomIdByUUID(form.getUuid());
        return R.ok().put("roomId", roomId);
    }
}

课程收获

  • 了解了腾讯的TRTC服务的基本使用方式。
  • 完成了应用于腾讯TRTC服务之间的调用方式。
  • 完成了用户签名的生成。

课程截图

image-20220813163053401

image-20220813163111095

image-20220813163128462

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消