【新知实验室 基于WEB的实时音视频(TRTC)案例搭建】

1. 实时音视频(TRTC)

1.1 实时音视频(TRTC)概述

实时音视频(TRTC) 是腾讯云提供的一套低延时、高质量的音视频通讯服务,致力于为腾讯云客户提供稳定、可靠和低成本的音视频传输能力。您可以使用该服务快速构建“视频通话”、“在线教育”、“直播连麦”、“在线会议”等对通信延时要求比较苛刻的音视频应用。
参考链接:https://cloud.tencent.com/document/product/647

1.2 实时音视频(TRTC)功能集成

腾讯云音视频(TRTC)功能集成分为包含UI组件集成方案和无 UI 组件集成方案。

1.2.1 含 UI 组件集成方案

在这里插入图片描述

实时音视频(TRTC)开发了一组标准化的 UI 组件,并提供了源代码,使用中可以直接将适合的 UI 组件导入到您的项目中,并在需要的时候加载他们。该集成方案的速度非常快,通常一个小时就能完成集成。

1.2.2 无 UI 组件集成方案

如果不需要同时可以在项目中直接导入 TRTC SDK,并通过 SDK API 以构建自己期望的业务形态。该集成方案相比UI集成的自由度很高,同时腾讯云音视频(TRTC)提供了各个平台 SDK 的 API 示例源码,源码文件夹中的 Basic 目录包含了基础功能的示例代码,Advanced 目录则包含了高级功能(比如设置分辨率、背景音效、网络测速等)的示例代码。
参考链接为:
Demo体验:
代码示例:
在这里插入图片描述

1.3 实时音视频(TRTC)架构

实时音视频(TRTC)可以对接多种端,使用的架构如下:
在这里插入图片描述

2. 使用体验

2.1 注册腾讯云

先注册腾讯云,大多数朋友已经都有腾讯云账户,如果需要注册,链接如下:腾讯云官网

2.2 申请实时音视频(TRTC)应用

点击如下链接,可以快速注册一个实时音视频(TRTC)引用。
链接

初次点击,会提示申请一个TRTC应用,申请完成,点击左侧的应用管理,可以查看到申请完成的应用
在这里插入图片描述
这里有SDKAppID和密钥SecretKey,需要保护好哦。
初次申请,有10000分钟的免费额度,🐧🐧鹅厂🐧🐧真是财气逼人啊!!

2.3 下载SDK的Demo源码

全部的SDK即Demo下载地址见官网
我的案例为基于WEB的案例,下载地址如下:
github仓库地址地址的访问速度,可以是gitee镜像 https://gitee.com/liteavsdk/TRTC_Web下载。
下载后,解压,目录如下:
在这里插入图片描述

2.4 获取 SDKAppId 和 密钥(SecretKey)

在腾讯云的TRTC应用中复制创建好的 SDKAppId 和 密钥(SecretKey)完成。

在下载好的SDK源码包中有readme.md文档,点击里面的原生JS在线Demo,在线链接。输入SDKAppId 和 密钥(SecretKey),如下:
在这里插入图片描述

点击Join Room后,视频就开始了,真是不到一个小时啊,真的快。
在这里插入图片描述

3. 创建自己的会议室应用

3.1 参考快速上手

进入腾讯云的应该管理界面,点击功能配置:
在这里插入图片描述

查看快速上手文档:
在这里插入图片描述
在这里插入图片描述

3.2 下面开始模拟复现快速上手

3.2.1 找到鉴权文件

安装快速上手中的第3个步骤,我们找到需要的文件/base-js/js/debug/GenerateTestUserSig.js
在这里插入图片描述

3.2.2 填写自己的SDKAppId 和 密钥(SecretKey)

在这里插入图片描述
备注:官方有明确支出,SDKAppId 和 密钥(SecretKey)不要写在前端js中,正式上线前请将 UserSig 计算代码和密钥迁移到您的后台服务器上,以避免加密密钥泄露导致的流量盗用。操作步骤参考如下UserSig 相关:

3.2.3 基于base代码测试

1.打开工程

把base-js文件夹拖拽vscode中,打开index.html右键open with live server
在这里插入图片描述

弹出如下页面:
在这里插入图片描述

2. 开始测试

依次测试各个环境
在这里插入图片描述

检测完成后,可以查看检测报告
在这里插入图片描述

3. 进入房间

输入用户名和房间号
在这里插入图片描述
点击进入房间
在这里插入图片描述
目前只有我一个人啊,哈哈

4. 重新打开一个然后进入房间

在vscode的index.html重新右键,open with live server
在这里插入图片描述
输入用户名和房间号
在这里插入图片描述

5. 同时进入会议室后的效果

在这里插入图片描述

点击结束可以推出会议室,点击分享可以共享整个屏幕或是应用等。

4. 本地基于flask运行会议室应用

4.1 环境创建

本地创建一个python工程pythontrtc,并安装flask

pip install flask

在pythontrtc工程下创建一个app.py文件,内容为:

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/")
def root():
    return render_template('Index.html')


if __name__ == '__main__':
    app.run(debug=True, host='127.0.0.1', port=5050)

4.2 配置trtc文件

创建一个static文件夹,把base-js目录下的.\css,.\js,.\data,.\img等文件夹拖到static目录下:
在这里插入图片描述

创建一个templates文件下。把base-js目录下index.html拖拽到templates目录下。
在这里插入图片描述
修改html中的引入路径,把所有的

./img替换为./static/img
./js替换为./static/js
./css替换为./static/css
./data替换为./static/data

4.3 运行

在控制台运行python app.py
然后在浏览器运行localhost:5050,打开2个窗口后,加入会议室,完成如下:
在这里插入图片描述

4.4 flask总结

到目前位置,基于flask的实时音视频项目完结,但这里的不足在于usersig依然从前端计算出来,下一步骤可以参考官网提出的python文件,实现server计算sig,然后传递给前端。
参考连接

5. 总结

感觉真的好用,未来我会尝试完成后端生成sig,并尝试把这个功能放在移动端,毕竟这种场景还是移动端更多些,结论是真的好用,比自己写的要优美很多!!!
附上自己的调用时长。
在这里插入图片描述

还有好多分钟可以使用,可以多研究下,最后感慨下,真是一个好产(有)品(钱)啊!!!

### 如何在 UniApp 中无 UI 集成腾讯 TRTC 实时音视频功能 要在 UniApp 中无 UI 集成腾讯 TRTC实时音视频功能,开发者需要遵循官方提供的无 UI 组件集成方案[^3]。以下是具体的技术细节: #### 1. 准备工作 开发前需完成以下准备工作: - **注册腾讯云账号并开通服务** 访问腾讯云官网,按照指引完成账户注册以及实时音视频 (TRTC) 功能的开通。 - **获取必要参数** - SDKAppID:用于标识您的应用实例。 - 用户签名(UserSig)密钥 SecretKey:用于生成安全认证所需的 UserSig。 #### 2. 安装依赖项 由于 UniApp 是跨平台框架,因此需要通过插件形式引入 TRTC SDK。目前腾讯提供针对 Android 和 iOS 平台的支持包,可以通过 HBuilderX 或 npm 来安装相关依赖库。 对于 JavaScript 环境下的调用接口,建议查阅最新版本的 [TRTC Web SDK](https://cloud.tencent.com/document/product/647/38905),尽管它主要面向浏览器端设计,但在某些场景下也可以作为参考来构建自定义逻辑[^4]。 #### 3. 初始化 SDK 初始化过程涉及加载原生模块并与前端交互绑定事件监听器等功能。下面是一个简单的伪代码示例说明如何设置基础环境变量: ```javascript // 引入必要的 Native 插件 import { trtc } from 'uni-trtc-plugin'; const sdkappid = YOUR_SDK_APP_ID; // 替换为您实际获得的应用 ID let userId = generateRandomUserId(); // 自定义方法生成唯一用户标识符 let userSig = genTestUserSig(userId); // 使用工具类函数计算合法签名字符串 try { await trtc.init(sdkappid, userId, userSig); } catch(error){ console.error('Failed to initialize TRTC:', error.message); } ``` 注意上述 `genTestUserSig` 方法应由服务器侧实现以保障安全性[^2]。 #### 4. 加入房间与发布媒体流 成功初始化之后就可以尝试加入指定会议号对应的虚拟空间,并开启摄像头麦克风采集数据上传至云端共享给其他参与者查看听闻了: ```javascript async function enterRoom(roomId){ try{ const result = await trtc.enterRoom({roomId}); if(result.code ===0 ){ startPublishingStream(); } }catch(err){ handleEnterError(err); } } function startPublishingStream(){ trtc.startLocalPreview().then(() => { return trtc.publish(); }).then(()=>{ logSuccessMessage("Media stream published successfully."); }).catch((err)=>{ handleErrorWhenPublishing(err); }); } ``` 以上片段展示了基本流程控制结构,但生产环境中还需要考虑更多边界条件处理机制比如网络状态变化通知等等。 #### 5. 错误排查指南 如果遇到困难无法正常运行程序,则可以参照官方给出的学习资料逐步调试定位问题所在位置。 --- ### 注意事项 - 确保所有设备均已正确配置权限请求声明以便访问硬件资源如相机和话筒等组件。 - 测试期间最好采用正式发布的二进制文件而非调试版以免影响性能表现评估准确性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT从业者张某某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值