含 UI 集成方案(荐)

无 UI 集成方案

服务端 API

数据库文档捉虫大赛邀您参加,好礼多多> HOT

前言

本文介绍利用 即时通信 IM 实时音视频 TRTC 集成的 WebRTC 直播互动组件(带 UI)。
即时通信 IM 针对不同需求及不同场景,提供了一系列解决方案。即时通信 IM 强大的聊天室互动能力、关系链托管、第三方回调能力,完美契合直播场景对于聊天互动、观众管理、互动抽奖等需求,并且考虑开发者对于直播的低延时需求和开发者快速接入的诉求,IM 联合 TRTC 推出带 UI 的 Web 端互动直播推拉流组件 TUIPusher & TUIPlayer。
本次推出的 TUIPusherTUIPlayer 组件涵盖观众列表、聊天互动、美颜、屏幕共享等功能,开箱即用,适配主流的桌面浏览器。TUIPusher 及 TUIPlayer 功能演示请观看下图。同时,我们结合用户管理系统和房间管理系统提供了 TUIPusher 体验链接TUIPlayer 体验链接

TUIPusher演示



功能介绍

TUIPusher 推流组件

支持采集摄像头和麦克风的流并推流
可根据需求设置视频参数(帧率,分辨率,码率)
支持开启美颜并设置视频美颜参数
支持采集屏幕分享流并推流
支持推流到腾讯云实时音视频后台,推流到腾讯云 CDN
支持在线聊天室,和在线观众进行聊天互动
支持获取观众列表,对在线观众进行禁言操作

TUIPlayer 拉流组件

支持同时播放音视频流和屏幕分享流
支持在线聊天室,和主播及其他观众进行聊天互动
支持超低延时直播(300ms 延时), 快直播(1000ms 以内延时)以及标准直播(支持超高并发观看)三种拉流线路
兼容桌面浏览器及移动端浏览器,支持移动端浏览器横屏观看
注意
部分浏览器不支持 WebRTC,只能使用标准直播线路观看,如需体验其他线路,请尝试更换浏览器。

接入方式

注意事项

TUIPusher & TUIPlayer 基于腾讯云实时音视频和即时通信服务进行开发。实时音视频 TRTC 应用与 即时通信 IM 应用的 SDKAppID 一致,才能复用账号与鉴权。
本地计算 UserSig 的方式仅用于本地开发调试,请勿直接发布到线上,一旦 SECRETKEY 泄露,攻击者就可以盗用您的腾讯云流量。正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig

步骤一:开通腾讯云服务

方式1:基于即时通信 IM
方式2:基于实时音视频

步骤1:创建即时通信 IM 应用

1. 登录 即时通信 IM 控制台,单击 创建新应用 将弹出对话框。


2. 输入您的应用名称,单击 确认 即可完成创建。


3. 您可在 即时通信 IM 控制台 总览页面查看新建应用的状态、业务版本、SDKAppID、创建时间以及到期时间。请记录 SDKAppID 信息。

步骤2:获取 IM 密钥并开通实时音视频服务

1. 即时通信 IM 控制台 总览页单击您创建完成的即时通信 IM 应用,随即跳转至该应用的基础配置页。在 基本信息 区域,单击 显示密钥,复制并保存密钥信息。


注意
请妥善保管密钥信息,谨防泄露。
2. 在该应用的基础配置页,开通腾讯云实时音视频服务。



步骤1:创建实时音视频 TRTC 应用

2. 实时音视频控制台 单击 应用管理 > 创建应用 创建新应用。
创建应用



步骤2: 获取 TRTC 密钥信息

1. 应用管理 > 应用信息 中获取 SDKAppID 信息。


2. 应用管理 > 快速上手 中获取应用的 secretKey 信息。


说明
首次创建实时音视频应用的腾讯云账号,可获赠一个10000分钟的音视频资源免费试用包。
创建实时音视频应用之后会自动创建一个 SDKAppID 相同的即时通信 IM 应用,可在 即时通信控制台 配置该应用的套餐信息。


步骤二:项目准备

1. GitHub 下载 TUIPusher & TUIPlayer 代码。
2. 为 TUIPusher & TUIPlayer 安装依赖。
cd Web/TUIPusher
npm install

cd Web/TUIPlayer
npm install
3. 将 sdkAppId 和 secretKey 填入 TUIPusher/src/config/basic-info-config.jsTUIPlayer/src/config/basic-info-config.js 配置文件中。


4. 本地开发环境运行 TUIPusher & TUIPlayer。
cd Web/TUIPusher
npm run serve

cd Web/TUIPlayer
npm run serve
5. 可打开 http://localhost:8080http://localhost:8081 体验 TUIPusher 和 TUIPlayer 功能。
6. 可更改 TUIPusher/src/config/basic-info-config.jsTUIPlayer/src/config/basic-info-config.js 配置文件中的房间,主播及观众等信息,注意保持 TUIPusher 和 TUIPlayer 的房间信息,主播信息一致
注意
完成以上配置,您可以使用 TUIPusher & TUIPlayer 进行超低延时直播,如您需要支持快直播和标准直播,请继续阅读 步骤三:旁路直播
本地计算 UserSig 的方式仅用于本地开发调试,请勿直接发布到线上,一旦您的 SECRETKEY 泄露,攻击者就可以盗用您的腾讯云流量。
正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig

步骤三:旁路直播

TUIPusher & TUIPlayer 实现的快直播和标准直播依托于腾讯云 云直播服务,因此支持快直播和标准直播线路需要您开启旁路推流功能。
1. 实时音视频控制台 中为您正在使用的应用开启旁路推流配置,可按需开启指定流旁路或全局自动旁路。


2. 请在 域名管理 页面添加自有播放域名,具体请参见 添加自有域名
3. TUIPlayer/src/config/basic-info-config.js 配置文件中配置播放域名。
完成以上配置,您可以体验 TUIPusher & TUIPlayer 支持超低延时直播,快直播以及标准直播的所有功能。

步骤四:生产环境应用

当您将 TUIPusher & TUIPlayer 用于生产应用时,在接入 TUIPusher & TUIPlayer 之外,您需要:
创建用户管理系统,用于管理产品用户信息,包括但不限于用户 ID,用户名,用户头像等。
创建房间管理系统,用于管理产品直播间信息,包括但不限于直播间 ID、直播间名称,直播间主播信息等。
服务端生成 UserSig。
注意
本文生成 UserSig 的方式,是在客户端根据您填入的 sdkAppId 及 secretKey 生成 userSig,该方式的 secretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此该方法仅适合本地跑通 TUIPusher & TUIPlayer 进行功能调试
正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的应用向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig
参考 TUIPusher/src/pusher.vueTUIPlayer/src/player.vue 文件,将用户信息、直播间信息、SDKAppId 及 UserSig 等账号信息提交到 vuex 的 store 进行全局存储,您就可以跑通推拉流两个客户端的所有功能。详细业务流程参见下图:



可选操作:开通内容审核功能

在直播场景中,用户很可能会发送不合适的内容,特别是与敏感事件/人物相关、黄色不良内容等令人反感的内容,不仅严重损害了用户们的身心健康,更很有可能违法并导致业务被监管部门查封。
即时通信 IM 支持内容审核(反垃圾信息)功能,可针对不安全、不适宜的内容进行自动识别、处理,为您的产品体验和业务安全保驾护航。可以通过以下两种内容审核方式来实现:
本地审核功能:在客户端本地检测在单聊、群聊、资料场景中由即时通信 SDK 发送的文本内容,支持对已配置的敏感词进行拦截或者替换处理。此功能通过在 IM 控制台开启服务并配置词库的方式实现。
云端审核功能:在服务端检测由单聊、群聊、资料场景中产生的文本、图片、音频、视频内容,支持针对不同场景的不同内容分别配置审核策略,并对识别出的不安全内容进行拦截。此功能已提供默认预设拦截词库和审核场景,只需在 IM 控制台打开功能开关,即可直接使用。

相关问题

Web 端如何实现美颜功能?

请参考 开启美颜

Web 端如何实现屏幕共享?

请参考 屏幕分享

Web 端如何实现云端录制?

开启 云端录制,请参考 实现云端录制与回放。 开启云端录制 > 指定用户录制之后,Web 端可通过在调用 TRTC.createClient 接口时传入 userDefineRecordId 参数开启录制。

Web 端如何实现推流到 CDN ?

Web 端推流到 CDN 请参考 实现推流到 CDN

Web 端如何实现快直播拉流?

实现快直播拉流的方式是通过 Web SDK 推流到 CDN 之后使用 webrtc 协议拉流;参考 快直播拉流 > Web(H5)播放器

Web 端如何实现标准直播拉流?

实现标准直播直播拉流请参考 标准直播拉流 > Web(H5)播放器

注意事项

平台支持

操作系统
浏览器类型
浏览器最低版本要求
TUIPlayer
TUIPusher
TUIPusher 屏幕分享
Mac OS
桌面版 Safari 浏览器
11+
支持
支持
支持(需要 Safari13+ 版本)
Mac OS
桌面版 Chrome 浏览器
56+
支持
支持
支持(需要 Chrome72+ 版本)
Mac OS
桌面版 Firefox 浏览器
56+
支持
支持
支持(需要 Firefox66+ 版本)
Mac OS
桌面版 Edge 浏览器
80+
支持
支持
支持
Mac OS
桌面版微信内嵌网页
-
支持
不支持
不支持
Mac OS
桌面版企业微信内嵌网页
-
支持
不支持
不支持
Windows
桌面版 Chrome 浏览器
56+
支持
支持
支持(需要 Chrome72+ 版本)
Windows
桌面版 QQ 浏览器(极速内核)
10.4+
支持
支持
不支持
Windows
桌面版 Firefox 浏览器
56+
支持
支持
支持(需要 Firefox66+ 版本)
Windows
桌面版 Edge 浏览器
80+
支持
支持
支持
Windows
桌面版微信内嵌网页
-
支持
不支持
不支持
Windows
桌面版企业微信内嵌网页
-
支持
不支持
不支持
iOS
微信内嵌浏览器
-
支持
不支持
不支持
iOS
企业微信内嵌浏览器
-
支持
不支持
不支持
iOS
移动版 Safari 浏览器
-
支持
不支持
不支持
iOS
移动版 Chrome 浏览器
-
支持
不支持
不支持
Android
微信内嵌浏览器
-
支持
不支持
不支持
Android
企业微信浏览器
-
支持
不支持
不支持
Android
移动版 Chrome 浏览器
-
支持
不支持
不支持
Android
移动版 QQ 浏览器
-
支持
不支持
不支持
Android
移动版 Firefox 浏览器
-
支持
不支持
不支持
Android
移动端 UC 浏览器
-
支持(仅支持标准直播观看)
不支持
不支持

域名要求

出于对用户安全、隐私等问题的考虑,浏览器限制网页在 HTTPS 协议下才能正常使用 TUIPusher & TUIPlayer 的全部功能。为确保生产环境用户顺畅接入和体验 TUIPusher & TUIPlayer 的全部功能,请使用 HTTPS 协议访问音视频应用页面。
注意
本地开发可以通过 http://localhost 协议进行访问。
URL 域名及协议支持情况请参考如下表格:
应用场景
协议
TUIPlayer
TUIPusher
TUIPusher 屏幕分享
备注
生产环境
HTTPS 协议
支持
支持
支持
推荐
生产环境
HTTP 协议
支持
不支持
不支持
-
本地开发环境
http://localhost
支持
支持
支持
推荐
本地开发环境
http://127.0.0.1
支持
支持
支持
-
本地开发环境
http://[本机IP]
支持
不支持
不支持
-

防火墙限制

TUIPusher & TUIPlayer 依赖以下端口进行数据传输,请将其加入防火墙白名单。
TCP 端口:8687
UDP 端口:8000,8080,8800,843,443,16285
域名:qcloud.rtc.qq.com

结语

在后续的迭代中, 本文的 Web 端推拉流组件会逐渐与 iOS、Andriod 等各端连通,并在 Web 端利用实现观众连麦、高级美颜、自定义布局、转推多平台、上传图片文字音乐等能力,针对电商直播场景,计划利用 即时通信IM 实现商城上下架、口令抽奖、答题抽奖等多样性的玩法。欢迎您多多使用、提出您的宝贵意见。
如果有任何需要或者反馈,可扫描下方二维码,或者单击 反馈链接 同步给我们。

此外,欢迎加入 TUI 组件使用交流 QQ 群(群号:592465424)进行技术交流和问题反馈。


目录