本文由 VideoTV 技术团队整理,专注企业直播解决方案。 VideoTV 提供小程序直播集成服务,支持从方案评估到SDK接入的全流程技术支持。如需技术方案评估,欢迎联系:www.videotvai.com
前言
微信小程序是私域直播的重要载体。相比H5直播,小程序有更好的微信生态整合能力(分享朋友圈、消息推送、支付闭环);相比App开发,小程序成本更低、用户获取门槛更低。
本文从技术角度介绍如何基于腾讯云 TRTC SDK 集成小程序直播功能,涵盖方案选型、SDK接入、常见坑点。
一、为什么选择小程序直播
1.1 小程序直播 vs H5直播 vs App直播
| 对比维度 | 小程序直播 | H5直播 | 原生App直播 |
|---|---|---|---|
| 用户获取 | 扫码即看,门槛最低 | 需要分享链接 | 需下载App |
| 微信生态整合 | 朋友圈/社群/公众号无缝跳转 | 受限 | 受限 |
| 推流稳定性 | 中(依赖微信客户端) | 中 | 高 |
| 开发成本 | 中(需认证小程序) | 低 | 高 |
| 适合场景 | 私域电商、教育培训 | 临时活动 | 高频直播 |
1.2 腾讯云 TRTC 小程序 SDK 的优势
- 即开即用:微信小程序可直接调用,无需第三方应用市场
- 低延迟:支持 <500ms 的双向连麦
- 混流输出:多嘉宾画面自动混流,单画面呈现
- 直播回放:支持云端录制,生成回放链接
二、技术方案选型
2.1 方案一:微信小程序自带live-player组件(基础方案)
微信小程序提供原生的 <live-player> 组件,可直接拉取直播流。
适合场景:单向推流+观众观看的简单直播(教育培训内部课、品牌发布会)
限制:
- 不支持实时连麦
- 不支持多人互动
- 需申请类目:社交-直播 > 插件使用
接入代码示例:
html
复制
<!-- wxml -->
<live-player
src="{{liveUrl}}"
mode="live"
autoplay
bindstatechange="onPlayerStateChange"
/>
javascript
复制
// js
Page({
data: { liveUrl: '' },
onLoad() {
// 从服务端获取直播推流地址
this.fetchLiveUrl().then(url => {
this.setData({ liveUrl: url });
});
}
});
2.2 方案二:TRTC SDK 集成(推荐方案)
适合需要连麦、互动、混流的场景。
接入步骤:
-
开通腾讯云 TRTC 服务
- 登录腾讯云控制台 → 实时音视频 → 创建应用
- 获取
SDKAppID和SecretKey
-
获取推流地址
- 服务端生成
UserSig(用户签名) - 生成推流地址:
trtc://cloudrecord.tencent.com/live/xxxxx
- 服务端生成
-
小程序端集成 SDK
bash
复制
npm install trtc-wx-sdk -
推流端代码:
javascript
复制
const TRTCCalling = require('trtc-wx-sdk/lib/TRTCCalling'); const trtc = wx.createTRTCContext(); // 加入房间 trtc.enterRoom({ roomId: 123456, sdkAppId: yourSdkAppId, userId: 'host_001', userSig: 'your_user_signature' }); // 开始推流 trtc.startLocalAudio(); trtc.startLocalVideo(); -
拉流端代码:
javascript
复制
// 拉流端通过live-player订阅 <live-player src="{{streamUrl}}" mode="RTC" />
2.3 方案三:联合卫视/视频号直播(生态联动)
小程序直播可同时转推至视频号、微信群,实现私域+公域联动:
TRTC 推流 ──▶ CDN ──▶ 视频号 Live
│ ▲
│ │
└──────────────────────┘
小程序直播同步转推
三、关键功能实现
3.1 实时连麦
TRTC 支持小程序端与其他端(Web、App、PC)的双向视频连麦:
javascript
复制
// 邀请连麦
trtc.call({ userId: 'guest_001', type: 1 });
// 接受连麦邀请
trtc.accept({ userId: 'host_001' });
// 切换前后摄像头
trtc.switchCamera();
注意事项:
- 连麦人数建议控制在 4 人以内(移动端性能限制)
- 混流输出可让多人画面合成单画面,节省带宽
3.2 弹幕与互动
弹幕走信令通道,不占用视频带宽:
javascript
复制
// 发送自定义信令(弹幕)
trtc.sendCustomMessage({
data: JSON.stringify({ type: 'danmu', text: 'hello' })
});
// 监听信令
trtc.on('onCustomMessage', ({ data }) => {
const msg = JSON.parse(data);
if (msg.type === 'danmu') {
this.showDanmu(msg.text);
}
});
3.3 云端录制与回放
TRTC 支持服务端自动录制:
javascript
复制
// 服务端 API 开启云端录制
// 用户离开房间后,自动生成录制文件至 COS
// 回调地址接收录制完成通知
录播文件生成后,可嵌入小程序内的回放播放器:
html
复制
<video src="{{replayUrl}}" controls />
四、类目与资质要求
4.1 小程序直播必须申请的类目
微信小程序直播属于社交-直播类目,需申请:
| 类目 | 适用场景 | 所需资质 |
|---|---|---|
| 社交-直播 | 培训、电商带货 | 小程序已认证 |
| 教育-在线视频 | 教育培训直播 | 教育类目需补充资质 |
| 医疗-在线问诊 | 医疗咨询直播 | 医疗机构执业许可证 |
4.2 域名与SSL要求
- 推流域名和拉流域名必须配置 HTTPS 证书
- 微信小程序要求所有网络请求走 HTTPS
- 建议使用腾讯云提供的免费 SSL 证书
五、常见坑点与解决方案
5.1 live-player 延迟高
问题:默认配置下延迟 5-10 秒,观众体验差。
解决:将 mode 改为 "RTC"(实时模式):
html
复制
<live-player src="{{url}}" mode="RTC" />
5.2 推流地址过期
问题:预计算的推流地址有时效,超过时间无法使用。
解决:使用服务端动态生成地址,用户进入直播间时实时获取。
5.3 iOS 和 Android 表现不一致
问题:部分API在iOS正常,Android异常。
解决:
- 使用
wx.getSystemInfo()判断机型,针对性处理 - 音频路由(听筒/扬声器)在两端行为不同,需分别测试
5.4 小程序包体积超限
问题:TRTC SDK 较大,可能导致小程序包超 2M 上限。
解决:
- 使用分包加载
- SDK 只在直播功能模块加载,非直播页面不引用
六、实施检查清单
| 检查项 | 要求 |
|---|---|
| TRTC服务已开通 | 控制台已创建应用 |
| 推流地址生成服务 | 服务端 API 已对接 |
| 小程序已认证 | 企业主体认证小程序 |
| 社交-直播类目已申请 | 审核通过 |
| SSL证书已配置 | HTTPS 域名可用 |
| iOS/Android 双端测试 | 连麦、弹幕、回放均正常 |
| 录制回放功能测试 | 录播文件正常生成 |
| 应急预案 | 推流失败降级方案(H5备用页面) |
总结
小程序直播是私域直播的高性价比选择。推荐基于 TRTC SDK 集成,可获得:
- 完整的实时互动能力:连麦、弹幕、混流
- 微信生态深度整合:分享朋友圈、社群触达、支付闭环
- 云端录制回放:直播内容资产化
接入时重点关注:推流地址动态生成、iOS/Android 兼容性、录制回放三个关键环节。
VideoTV 提供小程序直播 SDK 集成服务,从技术评估到代码接入全程支持。如需了解适合您业务的微信小程序直播方案,欢迎联系:www.videotvai.com