简介
本文档将介绍腾讯云小视频(UGC)Android Demo 的运行方式与源码结构。Demo 基于腾讯云短视频 SDK(LiteAVSDK)构建,涵盖短视频的录制、编辑、合成、发布、播放,以及腾讯特效美颜等能力。通过阅读本文档,您可以快速理解工程各模块的职责与代码组织方式。
如何运行 Demo
1. 下载 Demo,并解压。
2. 使用 Android Studio 打开项目
LiteAVDemo(UGC)。3. 在
xiaoshipindemo 模块下找到 LicenseManager 类,填写申请的短视频 License 和腾讯特效 License 信息:ugcLicenceUrl / ugcKey:短视频 License 的授权地址与密钥。xmagicAuthLicenceUrl / xmagicAuthKey:腾讯特效 License 的授权地址与密钥。4. 在
app 模块下找到 build.gradle 文件,将 applicationId 的值修改为申请 License 时填写的 Android 包名。工程结构
小视频工程共包含六个模块,其中
app 为壳工程,业务功能分布在其余五个模块中:app
app 模块目录结构参考如下:

此模块放置整个工程的 Application 类,具体功能模块在对应的功能 module 中。
文件/目录 | 说明 |
TCApplication.java | 小视频 Application 类,负责 ELK 数据上报(统计应用使用时长)。 |
build.gradle | 模块构建配置, applicationId 在此配置。 |
AndroidManifest.xml | 应用清单文件。 |
debug.keystore | 调试签名。 |
proguard-rules.pro | 混淆规则。 |
xiaoshipindemo
xiaoshipindemo 模块目录结构参考如下:

小视频按照功能划分成账号、主界面、播放、短视频(编辑、合成、录制、发布)等模块,代码上也按此划分进行分类。下面分别介绍这些模块及相应实现。
目录结构
文件/目录 | 说明 |
common | 通用组件,包括各种工具类、自定义界面(美颜、播放器控件)。 |
login | 账号模块,包括登录以及注册。 |
logoff | 账号注销页面。 |
mainui | 小视频主界面,包括主 Activity 以及视频列表。 |
manager | 权限处理模块。 |
play | 点播播放模块。 |
userinfo | 个人资料模块。 |
videochoose | 短视频文件选择模块。 |
videoeditor | 短视频编辑模块。 |
videojoiner | 短视频合成模块。 |
videopublish | 短视频发布模块。 |
videorecord | 短视频录制模块。 |
webview | 用于承载 H5 页面。 |
账号模块
负责处理用户登录、注册以及登录缓存的逻辑。
如果您已经有自己的账号体系,可以直接替换该模块。
通过调用
TCUserMgr.register 将用户名、密码注册到小视频的业务后台;调用 TCUserMgr.login 进行登录,并将登录信息缓存到本地 SharedPreferences 中;退出登录时清空本地缓存。相关代码:
类名 | 描述 |
TCLoginActivity.java | 用户登录页面。 |
TCRegisterActivity.java | 用户注册页面。 |
TCUserMgr | 用户登录注册管理类。 |
ProgressFragmentUtil | 显示进度条的控件。 |
TCUserInfoFragment.java | 用户资料展示页面。 |
TCAboutActivity | 小视频介绍的关于页面。 |
主界面和列表管理模块
主界面主要负责短视频列表、短视频拍摄/编辑和个人资料三个一级功能的切换。
登录成功后,默认展示列表界面;单击「+」号按钮后,弹出对话框让您选择录制小视频或编辑本地小视频;单击个人资料按钮,跳转到个人资料页面。
列表管理包含列表的拉取和展示。
相关代码:
类名 | 描述 |
TCSplashActivity.java | 闪屏界面。 |
TCMainActivity.java | 主界面,用于呈现短视频列表、短视频拍摄/编辑、用户信息页。 |
TCLiveListMgr.java | 列表管理类,提供接口获取本地内存列表及从服务器更新列表。 |
TCLiveListFragment.java | 列表展示界面,负责呈现短视频的数据。 |
TCLiveListAdapter.java | 短视频列表适配层。 |
TCUGCVideoListAdapter.java | 短视频列表适配层。 |
TCVideoInfo | 视频数据。 |
短视频录制模块
相关代码:
类名 | 描述 |
TCVideoRecordActivity.java | 短视频录制界面。 |
RecordProgressView | 按住拍摄短视频 View。 |
ComposeRecordBtn | 短视频多段拍摄进度条。 |
文件选择模块
提供本地文件选择功能,列出手机中所有 mp4 视频文件。
相关代码:
类名 | 描述 |
TCVideoChooseActivity.java | 本地 mp4 文件选择界面。 |
TCVideoEditerListAdapter.java | 本地 mp4 文件列表适配器。 |
TCVideoEditerMgr.java | mp4 视频文件管理类,提供接口获取存储在手机中的 mp4 文件。 |
TCVideoFileInfo.java | 本地视频数据。 |
编辑模块
相关代码:
类名 | 描述 |
TCVideoCutterActivity.java | 短视频裁剪界面。 |
TCVideoEditerActivity.java | 短视频裁剪后编辑界面,底部有音乐、滤镜、速度、色调、贴纸、字幕等功能。 |
TCVideoEffectActivity.java | 单击底部按钮,进入短视频添加特效界面。 |
短视频合成模块
videojoiner/ 目录负责短视频合成相关功能。短视频发布模块
将录制的文件发布到腾讯云视频分发平台(点播系统)中。
相关代码:
类名 | 描述 |
TCVideoPublisherActivity.java | 短视频发布界面。 |
短视频播放模块
播放已经发布到点播系统中的视频,在小视频列表页面上下滑动可快速切换上/下一个视频。
相关代码:
类名 | 描述 |
TCVodPlayerActivity.java | 短视频播放界面。 |
ugckit
ugckit 模块目录结构参考如下:

此模块主要是对短视频 SDK 的高级封装(包含 UI),方便快速接入。
文件/目录 | 说明 |
basic | 通用接口。 |
component | 页面上使用的组件。 |
module | 裁剪、编辑、特效、合成、多屏合拍、录制、上传、视频选择等模块封装,方便对应 View 使用。 |
utils | 工具类模块。 |
PermissionIntroductionDialog | 权限对话框。 |
UGCKit | UGC 初始化类。 |
UGCKitConstants | 常量配置信息。 |
UGCKitPicturePicker | 图片选择模块 View。 |
UGCKitVideoCut | 短视频裁剪模块 View。 |
UGCKitVideoEdit | 短视频编辑模块 View。 |
UGCKitVideoEffect | 短视频特效设置模块 View。 |
UGCKitVideoJoin | 短视频合成模块 View。 |
UGCKitVideoMixRecord | 多屏录制模块 View。 |
UGCKitVideoPicker | 视频选择模块 View。 |
UGCKitVideoPublish | 上传视频模块 View。 |
UGCKitVideoRecord | 短视频录制模块 View。 |
xmagickit
xmagickit 模块目录结构参考如下:

此模块用于快速接入腾讯特效美颜,是对腾讯特效美颜 Kit(TEBeautyKit)的二次封装。如果您需要在短视频中接入腾讯特效,可以参考 Demo 中使用此模块的方式快速接入。
文件/目录 | 说明 |
assets | 存放腾讯特效中使用的滤镜和贴纸,以及 TEBeautyKit 中美颜面板需要使用的配置文件。 |
TEBeautySDKManger | 腾讯特效美颜 SDK 管理类,负责 SDK 初始化、授权校验、美颜面板资源配置以及动效资源拷贝。 |
CustomPropertyManager | 自定义属性管理类,处理自定义分割(自定义背景图片/视频)的素材选择与设置。 |
DefaultPanelViewCallback | 美颜面板视图回调(TEPanelViewCallback)的默认实现。 |
utils | 工具类,包含 AppUtils(应用信息)、BitmapUtil(图片压缩/旋转处理)、SPUtils(本地存储)、UriUtils(Uri 转文件路径)。 |
beautykit
beautykit 模块目录结构参考如下:

此模块是短视频中的基础美颜模块。如果客户选择使用基础美颜,可以使用此模块进行快速集成。
文件/目录 | 说明 |
adapter | 美颜面板 UI Adapter。 |
constant | 美颜常量定义。 |
download | 美颜下载模块。 |
model | 美颜属性封装模块。 |
utils | 工具类。 |
view | 美颜面板。 |
BeautyImpl | 使用美颜的封装类。 |
BeautyParams | 美颜参数封装类。 |
ugcquic
ugcquic 模块目录结构参考如下:

此模块用于短视频上传的 QUIC 协议探测与加速,是对腾讯云 QUIC(TQUIC)SDK 的封装。它能在短视频上传前探测 QUIC 链路是否连通,从而提升上传速度与成功率。
文件/目录 | 说明 |
impl | QUIC 协议封装实现,包括 QUIC 客户端代理与回调接口。 |
相关代码:
类名 | 描述 |
UGCQuicClientProxy.java | QUIC 客户端代理类,封装 TnetQuicRequest 的连接、请求、取消等操作,并转发底层回调。 |
UGCQuicCallback.java | QUIC 回调接口,定义连接、网络建立、响应头/数据接收、完成及关闭等回调方法。 |
说明:
该模块通过
com.qcloud.cos:quic 依赖提供底层 QUIC 能力。上传模块(ugckit 中的 QuicClient)通过反射调用本模块的 UGCQuicClientProxy / UGCQuicCallback 完成上传前的 QUIC 链路探测;当业务无需 QUIC 加速时,可移除该模块依赖而不影响上传主流程。