news 2026/1/26 18:56:22

SpringBoot从0-1集成腾讯音视频通话

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot从0-1集成腾讯音视频通话

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨

这里有:

  • 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!
  • 趣味开发日常:代码背后的脑洞故事、工具测评,让技术圈不再枯燥~
  • 独家资源分享:开源项目、学习资料包,助你打怪升级快人一步!

👉点击直达→盹猫猫的个人小站👈
🌟 来逛逛吧,说不定能挖到你正在找的技术宝藏哦~

目录

前言

环境准备

创建应用

Pom依赖

代码步骤

服务端

application.yml

配置类

参数接口

网页端

依赖

功能代码

总结


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

[SpringBoot从0-1集成腾讯音视频通话]
❤博主广交技术好友,喜欢文章的可以关注一下❤

前言

音视频通话功能是开发过程中经常用到的功能,可以被广泛用于需要即时通信的场景。但自己去实现该功能通常有很多困难,包括搭建语音通信系统、视频服务,并且需要保证服务器有足够带宽去进行视频数据传输,而且很难保证稳定性。

这时实现该功能通常的方式是集成第三方的音视频SDK去实现该功能,比较常用的是腾讯云的音视频功能。

本篇文章就是记录如何使用SpringBoot结合腾讯云的音视频SDK实现即时音视频的通话。

环境准备

创建应用

在腾讯云的控制台搜索实时音视频,创建一个应用,获取其中的SDKAppIDSDK密钥。这两个参数会在服务端和网页端用到。

Pom依赖(SpringBoot)

在Pom文件中需要加入下面的音视频接口依赖,方便进行接口调用:

<dependency> <groupId>com.github.tencentyun</groupId> <artifactId>tls-sig-api-v2</artifactId> <version>2.0</version> </dependency>

代码步骤

服务端

application.yml

trtc: appId: 创建的应用AppId(这里是1600119797) key: 创建的应用密钥

在application.yml中需要添加创建应用时获取的AppID密钥,方便在后续的类中进行注入。

配置类

/** * @author nodcat * @version 1.0 * @since 2025/12/26 下午1:39 */ @Configuration public class TencentRtcConfig { //APPID @Value("${trtc.appId}") private Long appId; //密钥KEY @Value("${trtc.key}") private String key; //腾讯音视频接口客户端 @Bean public TLSSigAPIv2 tlsSigAPIv2(){ return new TLSSigAPIv2(appId, key); } public Long getAppId() { return appId; } }

TencentRtcConfig的配置类中注入我们需要的AppId和密钥,并且通过TLSSigAPIv2创建一个对象,并交由Spring管理。

响应封装

创建一个返回消息封装类TrtcDTO,封装前端加入音视频通话需要用到的参数,其中包括应用ID、用户ID、签名、房间ID,代码如下:

@Data @Builder public class TrtcDTO { /** * 应用ID */ private Long appId; /** * 用户ID */ private Long userId; /** * 签名 */ private String userSig; /** * 房间ID */ private Long roomId; public Long getRoomId() { return 10001L; } }

注意:这里是房间ID默认10001,可根据实际需要配合数据库创建多个房间,并根据用户实际需要加入不同的房间。

参数接口

创建一个用于前端页面调用接口获取加入房间的必要参数的接口,其中userSig(签名)需要使用户ID和超时时间进行远程调用生成,代码如下:

/** * @author nodcat * @version 1.0 * @since 2025/12/26 下午2:05 */ @RestController @Api(tags = "视频通话") @RequestMapping("/api/rtc") public class DashTRtcController { @Autowired TLSSigAPIv2 tlsSigAPIv2; @Autowired TencentRtcConfig tencentRtcConfig; @GetMapping("/config") @ApiOperation("获取视频通话参数") public Result<TrtcDTO> getRtcConfig(){ //获取请求当前登录用户的用户ID Long id = SecurityUser.getUser().getId(); //这里设置UserSig的有效时间是1小时 String userSig = tlsSigAPIv2.genUserSig(id.toString(), 3600); //封装参数返回 return new Result<TrtcDTO>().ok( TrtcDTO.builder().appId(tencentRtcConfig.getAppId()) .userSig(userSig) .userId(id).build() ); } }

返回的格式如下:

{ "code": 200, "msg": "success", "data": { "appId": 1600119797, "userId": 1, "userSig": "实际生成的签名", "roomId": 10001 } }

测试页面

这边创建了一个测试页面用于测试音视频通话功能页面,已经发布在链接(视频通话网址),可以填入相关参数进行测试通话功能。

在公众号【盹猫技术汇】输入【视频通话】获取全部源码。

总结

通过集成腾讯音视频(TRTC)服务可以很快捷的实现音视频通话功能,减少独自实现音视频服务的困难。经过测试,音视频通话效果还是非常不错的,赶紧去试试吧!

上面就是所有配置信息了,如果内容对你有帮助,麻烦留一个赞👍和收藏⭐支持一下!


如果你对区块链内容感兴趣可以查看我的专栏:小试牛刀-区块链

感谢您的关注和收藏!!!!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/23 9:30:02

大模型Token免费额度申请:个人开发者福利政策

PyTorch-CUDA-v2.7 镜像&#xff1a;解锁大模型开发的“开箱即用”体验 在如今的大模型浪潮中&#xff0c;个人开发者想要快速验证一个想法&#xff0c;往往卡在第一步——环境配置。你有没有经历过这样的场景&#xff1f;花了一整天时间安装 CUDA、配置 cuDNN、反复重装 PyTo…

作者头像 李华
网站建设 2026/1/21 7:57:26

飞腾CPU+DCU组合适配:PyTorch-CUDA-v2.7移植可能性探讨

飞腾CPUDCU组合适配&#xff1a;PyTorch-CUDA-v2.7移植可能性探讨 在当前AI基础设施自主可控的大背景下&#xff0c;一个现实而紧迫的问题摆在我们面前&#xff1a;当主流深度学习框架严重依赖NVIDIA的CUDA生态时&#xff0c;国产算力平台如何实现“平替”&#xff1f;特别是对…

作者头像 李华
网站建设 2026/1/22 20:10:45

Seaborn统计图表绘制:结合PyTorch-CUDA-v2.7分析训练曲线

Seaborn统计图表绘制&#xff1a;结合PyTorch-CUDA-v2.7分析训练曲线 在深度学习项目中&#xff0c;模型训练往往像一场“黑箱实验”——我们设定超参数、启动训练&#xff0c;然后盯着终端里不断跳动的损失值&#xff0c;试图从中读出模型是否收敛、是否存在过拟合或梯度问题。…

作者头像 李华
网站建设 2026/1/20 10:07:29

Installing Python包总中断?PyTorch-CUDA-v2.7提供稳定环境

PyTorch-CUDA-v2.7&#xff1a;告别环境配置噩梦&#xff0c;一键启动GPU加速开发 在深度学习项目中&#xff0c;你是否经历过这样的场景&#xff1a;刚写完一个精巧的模型架构&#xff0c;满怀期待地运行训练脚本&#xff0c;结果终端却抛出一连串红色错误——torch not found…

作者头像 李华
网站建设 2026/1/25 7:05:38

从实验到部署无缝衔接:PyTorch-CUDA-v2.7镜像核心优势解析

从实验到部署无缝衔接&#xff1a;PyTorch-CUDA-v2.7镜像核心优势解析 在AI研发一线&#xff0c;你是否经历过这样的场景&#xff1f; 凌晨两点&#xff0c;模型终于调通&#xff0c;本地训练效果惊艳。兴冲冲推送到服务器准备批量跑数据时&#xff0c;却卡在了第一步——torch…

作者头像 李华