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

Posted IT从业者张某某

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新知实验室 基于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,并尝试把这个功能放在移动端,毕竟这种场景还是移动端更多些,结论是真的好用,比自己写的要优美很多!!!
附上自己的调用时长。

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

摸索在web端使用腾讯云的实时音视频

今天接到一个新任务,要在web端集成,实时音频/视频,选择了腾讯云的服务:

线上demo:https://trtc-1252463788.file.myqcloud.com/web/demo/official-demo/index.html?_ga=1.196434732.1236084362.1555145149

 web播放器文档地址:https://cloud.tencent.com/document/product/454/7503

腾讯云实时 音视频 文档地址:https://cloud.tencent.com/document/product/647/17021

 

 

 点击web下的下载按钮会弹出一个网页可以在web端体验 实时 音视频 的demo

demo地址:https://trtc-1252463788.file.myqcloud.com/web/demo/official-demo/index.html?_ga=1.256196107.1236084362.1555145149

我们试着在腾讯云上开通服务,点击 实时音视频控制台  :https://console.cloud.tencent.com/trtc/quickstart      微信扫码登陆即可

 

 

 我们点击开始创建应用后:

 

 输入个demo名称之后,点击创建应用:让我们下载SDK   我选择下载web端的SDK

 

 

 

 我已经下载过了。

点击下一步:

往demo中加入appid和秘钥,正式项目不会在script甲苯上直接加这两个参数的,不安全,都是动态获取到这两个参数,在动态加载脚本;

 

切换到web标签下面:

 

 打开下载好的demo,找到这个文件把appid和秘钥复制进去

 

 

 

 

 

 

 

 然后打开demo在浏览器打开index.html就可以正常使用demo里的实时音视频了:

 然后回到文档点击下一步:就让开套餐了,有10000分钟的免费时间;

 

 上面已经把官网提供的web端demo跑通了;

 

 

 

 

 

 

 

 

以上是关于新知实验室 基于WEB的实时音视频(TRTC)案例搭建的主要内容,如果未能解决你的问题,请参考以下文章

新知实验室TRTC初探

新知实验室 - TRTC 实践音视频互动 Demo即时通信 IM 服务搭建

新知实验室 - TRTC 实践音视频互动 Demo即时通信 IM 服务搭建

新知实验室 - TRTC 实践音视频互动 Demo即时通信 IM 服务搭建

新知实验室--音视频通话腾讯云TRTC-实时音视频---多人会议视频通话SDK基础搭建

新知实验室-基于腾讯云音视频TRTC的微信小程序实践