tencent cloud

短视频 SDK

动态与公告
产品动态
关于短视频 SDK “startPlay”接口名变更的公告
产品简介
产品概述
产品功能
应用场景
基本概念
购买指南
价格总览
退款说明
免费测试
License 指引
新增与续期 License
配置查看 License
Demo 体验
SDK 下载
SDK 下载
发布日志(App)
含 UI 集成方案
小视频 App
源码解读(iOS)
源码解读(Android)
不含 UI 集成方案
SDK 集成
拍照和录制
预览裁剪和拼接
上传和播放
美颜特效
高级功能和特效
API 文档
短视频编辑
短视频录制
技术支持
错误码表
功能答疑
常见问题
上传常见问题
Android 编译问题
Android 常见问题
iOS 常见问题
License 常见问题
UGSV 政策
隐私政策
数据处理和安全协议

Android

PDF
聚焦模式
字号
最后更新时间: 2025-04-01 17:14:09
如果有多个视频需要拼接成一个视频,可以使用 TXVideoJoiner,可以将多个视频前后拼接成一个视频,也可以将多个视频画面叠加的形式进行拼接。

1. 基础拼接功能

如果您只想将多个视频文件简单地前后拼接成一个视频文件,可以参见以下代码:

mTXVideoJoiner = new TXVideoJoiner(mContext);

// 设置视频源,返回值 < 0 表示原始文件中有错误或者格式不支持
if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0) {
return
}

// 设置回调,监听合并进度和合并完成事件
mTXVideoJoiner.setVideoJoinerListener(new TXVideoJoinerListener() {
@Override
public void onJoinProgress(float progress) {}

@Override
public void onJoinComplete(TXJoinerResult result) {}
});

// 开始合并。参数传递合并视频的分辨率以及输出路径。
// 如果合并的多个文件格式和分辨率一致,可以快速完成视频的合并,如果格式和分辨率不一致,则需要重新编码,合并速度会比较慢
mTXVideoJoiner.joinVideo(TXVideoEditConstants.VIDEO_COMPRESSED_540P, mOutputPath);

2. 预览拼接文件

如果您想在合并视频之前对要合并的视频进行预览,可以参见如下代码:
mTXVideoJoiner = new TXVideoJoiner(mContext);

// 设置视频源,返回值 < 0 表示原始文件中有错误或者格式不支持
if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0{
return
}

// 设置回调,监听预览进度和预览完成事件
mTXVideoJoiner.setTXVideoPreviewListener(new TXVideoPreviewListener() {
@Override
public void onPreviewProgress(int time) {}

@Override
public void onPreviewFinished() {}
});

//准备预览View
TXVideoEditConstants.TXPreviewParam param = new TXVideoEditConstants.TXPreviewParam();
param.videoView = mVideoView;
param.renderMode = TXVideoEditConstants.PREVIEW_RENDER_MODE_FILL_EDGE;
mTXVideoJoiner.initWithPreview(param);

// 开始预览
mTXVideoJoiner.startPlay();
合成模块提供了一组接口来做视频的播放预览:
startPlay:表示视频播放开始。
pausePlay:表示视频播放暂停。
resumePlay:表示视频播放恢复。

3. 视频合演

TXVideoJoiner 不仅仅支持将多个视频前后拼接起来,还可以将多个视频的画面合并在一起进行拼接,参见如下代码:

mTXVideoJoiner = new TXVideoJoiner(mContext);

// 设置视频源,返回值 < 0 表示原始文件中有错误或者格式不支持
if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0{
return
}

// 设置回调,监听合并进度和合并完成事件
mTXVideoJoiner.setVideoJoinerListener(new TXVideoJoinerListener() {
@Override
public void onJoinProgress(float progress) {}

@Override
public void onJoinComplete(TXJoinerResult result) {}
});

// 设置合演画面参数
SplitScreenParam splitScreenParam = new SplitScreenParam();
splitScreenParam.canvasWidth = 720; // 合演时的画面宽度
splitScreenParam.canvasHeight = 1280; // 合演时画面的高度
splitScreenParam.durationControlMode = DurationControlMode.ALIGNS_TO_LONGEST; // 指定合演视频的长度跟最长的视频一致
// 用于指定每个视频在画面中的位置和大小
TXAbsoluteRect rect1 = new TXAbsoluteRect();
TXAbsoluteRect rect2 = new TXAbsoluteRect();
splitScreenParam.rects.add(rect1);
splitScreenParam.rects.add(rect2);
mTXVideoJoiner.setSplitScreenList(splitScreenParam);

// 设置合演时,每个视频音频混合时的比重
List<Float> volumes = new LinkedList<>();
volumes.add(1.0f);
volumes.add(0.0f);
mTXVideoJoiner.setVideoVolumes(volumes);

// 开始合并。参数传递合并视频的分辨率以及输出路径。
// 如果合并的多个文件格式和分辨率一致,可以快速完成视频的合并,如果格式和分辨率不一致,则需要重新编码,合并速度会比较慢
mTXVideoJoiner.splitJoinVideo(TXVideoEditConstants.VIDEO_COMPRESSED_540P, mOutputPath);
当我们调用setSplitScreenListsetVideoVolumes设置合演时的画面参数和声音混合大小之后,不仅仅对调用splitJoinVideo生成视频生效,也对视频预览生效。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈