腾讯云音视频终端SDK(腾讯云视立方)对接使用全攻略
1. 认识腾讯云视立方:不止是一个SDK
音视频终端SDK(腾讯云视立方)是腾讯云全新升级打造的音视频通信终端产品家族。它并非单一功能的SDK,而是一个集直播推流、视频播放、实时音视频、即时通信等核心能力于一体的综合性终端工具集。其核心价值在于降低音视频应用的开发门槛,让开发者无需深入底层编解码算法与网络传输协议,即可快速集成音视频功能。
腾讯云视立方支持移动端(Android/iOS)、PC端(Windows/macOS)、Web端、小程序端、Flutter、HarmonyOS等多终端接入。根据时下火热的各类音视频场景,提供SDK快速集成方案,用户可根据业务需求定制化集成SDK。
2. 产品家族拆解:选对SDK是成功的一半
腾讯云视立方产品家族分为基础SDK和含UI的低代码组件两大类。
2.1 基础SDK(五种子产品)
基础SDK仅提供终端基础能力,开发者可根据自身产品的需求选择相应的SDK。全功能版SDK内包含了直播SDK、短视频SDK、播放器SDK和实时音视频TRTC SDK的全部功能,可解决多款SDK同时使用时引起的依赖库冲突问题。
- 直播SDK:专注移动直播场景,提供主播开播、主播观众连麦、主播跨房PK等能力。推流端支持采集摄像头画面或采集手机界面,通过RTMP协议快速推流到云直播服务。支持QUIC协议推流,使用RTMP over QUIC快速推流至腾讯云,更低卡顿、更低延时。
- 短视频SDK:提供视频录制编辑、视频上传发布能力。支持多种屏比拍摄、变速控制、分段录制。
- 播放器SDK:提供直播流播放、点播视频文件播放能力。采用腾讯视频同款播放内核,对比系统播放器性能提升20%~50%。短视频启播时长最低可至100ms。
- 实时音视频TRTC SDK:提供实时音视频通话能力。
- 腾讯特效SDK:提供美颜美妆、动态特效、虚拟背景等功能。基于优图精准的AI能力和天天P图丰富的实时特效处理。
2.2 含UI的低代码组件
含UI的低代码组件提供包含后台服务及终端SDK一整套解决方案,支持含UI资源快速集成。
- 音视频通话SDK(TUICallKit):基于通话场景深度定制,提供双人音视频通话、群组音视频通话、中途呼叫第三方、AI通话降噪、通话卡顿优化等功能,提供微信视频聊天同款UI快速集成方案,仅需三步最快一天完成集成上线。
- 多人音视频房间SDK(TUIRoomKit):定位企业会议、在线课堂、网络沙龙等多人音视频会话场景,通过集成该组件,仅需三步一天内即可为App添加多人音视频会话功能。
3. License授权机制:解锁SDK功能的钥匙
腾讯云视立方通过License机制来管理SDK的使用授权。License通过一组License URL和Key来获取并校验一个应用下功能模块的授权。不同的功能模块对应不同的License类型。
3.1 License类型与功能对应
- 直播License:解锁直播推流 + 视频播放
- 短视频License:解锁短视频制作(精简版/基础版)+ 视频播放
- 播放器License:解锁视频播放
- 终端极速高清License:解锁终端极速高清能力
- 腾讯特效License:解锁美颜特效能力
3.2 测试版License申请
开发者可通过免费申请测试版License来体验功能模块。登录腾讯云视立方控制台 > License管理,选择对应平台和SDK类型,填写项目名和域名等信息即可完成申请。每个License均可申请1次。音视频通话SDK还可免费领取7天体验版。测试版License有效期通常为7天,支持续期1次。
3.3 正式版License获取
正式版License需通过购买对应的云服务资源包免费获取。例如,购买云直播流量资源包可获取直播License,购买云点播流量资源包可获取短视频License。购买成功后,在腾讯云视立方控制台 > License管理 > 移动端License,单击新建正式License,填写App Name、Package Name和Bundle ID等信息完成绑定。正式版License的项目信息提交后不允许修改。
4. SDK下载与集成准备
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
4.1 SDK获取方式
登录腾讯云视立方控制台 > 快速上手,根据实际业务需求选择下载对应的压缩包。控制台提供全功能版SDK作为体验,也可前往SDK下载页面体验更多版本SDK。
- Android端:项目地址为SuperPlayer_Android,可下载SDK + Demo开发包
- iOS端:项目地址为LiteAVSDK/Player_iOS
- Web端:通过CDN引入或NPM安装方式集成
4.2 环境准备
在使用SDK前,需先注册腾讯云账号并完成实名认证。不同平台有相应的开发环境要求:Flutter需3.22及以上版本,Android Studio需Bumblebee及以上版本。
5. Android端集成实战
5.1 集成SDK开发包
将下载的SDK开发包(如TXLiteAVSDK_Player.aar)集成到工程中。在app的build.gradle中配置依赖。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation 'com.tencent.liteav:LiteAVSDK_Player:latest_version'
}5.2 配置License授权
在Application或Activity初始化时,通过setLicence方法设置License URL和Key。
// 在Application的onCreate中初始化
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String licenceUrl = "您的License URL";
String licenceKey = "您的License Key";
TXLiveBase.getInstance().setLicence(this, licenceUrl, licenceKey);
}
}5.3 直播推流实现
通过TXLivePusher实现直播推流。需在初始化V2TXLivePusher组件时创建TXLivePusher对象。
// 创建推流实例
TXLivePusher pusher = new TXLivePusher(context);
pusher.setPushListener(new TXLivePushListener() {
@Override
public void onPushEvent(int event, Bundle param) {
// 处理推流事件
}
@Override
public void onNetStatus(Bundle status) {
// 处理网络状态
}
});
// 开始预览(需要先获取摄像头权限)
pusher.startCameraPreview(cameraView);
// 开始推流
String pushUrl = "rtmp://您的推流地址";
pusher.startPush(pushUrl);5.4 直播播放实现
通过TXLivePlayer实现直播播放。10.7版本开始,startPlay变更为startLivePlay。
// 创建播放器实例
TXLivePlayer player = new TXLivePlayer(context);
player.setPlayerView(playerView);
player.setPlayListener(new TXLivePlayListener() {
@Override
public void onPlayEvent(int event, Bundle param) {
// 处理播放事件
}
@Override
public void onNetStatus(Bundle status) {
// 处理网络状态
}
});
// 开始播放
String playUrl = "http://您的播放地址";
player.startLivePlay(playUrl, TXLivePlayer.PLAY_TYPE_LIVE_RTMP);6. Web端集成实战
6.1 引入播放器
在页面中引入播放器样式文件及脚本文件。
<!-- 引入播放器样式 -->
<link href="https://cdn.example.com/player.css" rel="stylesheet">
<!-- 引入播放器脚本 -->
<script src="https://cdn.example.com/player.js"></script>
<!-- 播放器容器 -->
<div id="player-container"></div>
<script>
// 初始化播放器
var player = new TCPlayer('player-container', {
fileID: '您的文件ID',
appID: '您的AppID',
autoplay: true
});
</script>6.2 Web推流实现
通过浏览器采集音视频,利用WebRTC推流至腾讯云服务器。
// 生成推流SDK实例
const pusher = new TXLivePusher();
// 指定本地视频播放器容器
const playerContainer = document.getElementById('local-video');
// 开始推流
const pushUrl = "rtmp://您的推流地址";
pusher.startPush(pushUrl);7. 美颜特效集成
腾讯特效SDK是音视频终端SDK的重要组成部分,移动端支持与直播SDK、短视频SDK、音视频通话SDK灵活集成。腾讯云视立方·Web美颜特效提供在Web与小程序中实现美颜特效等AR效果的整体解决方案。
7.1 Android端美颜集成
// 初始化美颜特效
TXUGCEditor editor = new TXUGCEditor(context);
TXUGCEditorConfig config = new TXUGCEditorConfig();
config.setVideoPath(videoPath);
editor.setEditorListener(new TXUGCEditorListener() {
@Override
public void onEditorEvent(int event, Object param) {
// 处理编辑事件
}
});
editor.init(config);
// 设置美颜效果
editor.setBeautyStyle(TXUGCEditor.BEAUTY_STYLE_SMOOTH);
editor.setBeautyLevel(5); // 美颜等级 0-9
editor.setWhiteningLevel(3); // 美白等级 0-98. 高级功能:终端极速高清
腾讯云视立方·音视频终端引擎提供了终端极速高清插件,该插件可在终端实现视频播放的超分后处理。在保证画质的前提下降低视频传输成本——如在云端将720p视频降档为540p进行传输,在终端播放时利用超分技术将视频画质提升为720p效果。目前仅播放器SDK移动端9.5.29009以上版本可使用该插件。
集成终端极速高清需同时集成极速高清插件SDK和终端视频增强SDK。Android端集成步骤如下:
// 步骤1:集成SDK到工程
// 将plugin_monet-release.aar和TsrSdk-Release.aar集成到工程
// 步骤2:添加权限
<uses-permission android:name="android.permission.INTERNET"/>
// Android targetSdkVersion >= 31时需添加以下标签
<uses-native-library android:name="libOpenCL.so" android:required="false"/>9. 含UI低代码组件快速接入
9.1 TUICallKit(音视频通话)
在腾讯云视立方控制台创建项目,选择音视频通话场景和集成方式。创建项目后,选择集成环境(Android/iOS/Web)并下载TUIKit开发包。下载后参照集成测试步骤完成集成测试。业务上线需购买音视频通话套餐包。
9.2 TUIRoomKit(多人音视频房间)
登录腾讯云视立方控制台,单击创建项目,选择多人音视频互动场景。推荐选择含UI快速集成。开通多人音视频房间SDK服务后即可快速集成。
10. 性能优化与最佳实践
10.1 推流优化
- 针对腾讯云的推流地址,SDK会采用QUIC协议进行加速,配合改进后的BBR2带宽测算方案,最大限度利用主播的上行带宽,降低直播卡顿率
- 内嵌Qos流量控制技术,具备上行网络自适应能力,可根据网络具体情况实时调节音视频数据量
- 电商直播推荐使用RTMP协议推流,码率设置2-3Mbps(720P场景),不超过4Mbps以避免卡顿
10.2 播放优化
- 结合预播放、预下载、播放器复用、精准流量控制、加载策略等技术,在保证低能耗的前提下实现极致流畅的播放效果
- 支持多码率HLS指定流的下载及离线播放
10.3 安全合规
- 确保在用户阅读App隐私政策并取得用户授权之后,再调用正式初始化函数
- 如用户不同意隐私政策授权,则不能调用正式初始化函数
- 使用终端极速高清需要播放器License,请确保已申请
11. 常见错误与排查
- -1101:摄像头没有系统授权,检查系统授权
- -1102:摄像头被占用,检查是否有其他进程使用摄像头
- -1103:当前无摄像头设备,请插入摄像头设备
- -1104:系统问题,打开麦克风失败,检查麦克风设备是否正常
- AuthFailure.SecretIdNotFound:密钥不存在,请在控制台检查密钥是否被删除或禁用
集成过程中如遇异常,在Android Studio中替换新的aar后,需修改app的build.gradle中的aar引用,确保与/libs目录下的aar文件名称一致,然后重新clean并build工程。
12. 总结
腾讯云视立方作为腾讯云音视频能力的终端出口,为开发者提供了一套从采集、编码、推流、传输到播放、渲染的全链路解决方案。通过License机制灵活控制功能授权,通过多端SDK覆盖全平台场景,通过含UI低代码组件实现极速上线。开发者可根据业务需求灵活选型——从轻量级的播放器SDK到全功能版SDK,从纯技术集成到含UI组件快速接入,都能在腾讯云视立方产品家族中找到合适的方案。




