mTXVideoJoiner = new TXVideoJoiner(mContext);// Set the video source list. A return value < 0 indicates invalid or unsupported formats in the input files.if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0) {return;}// Set a listener to track concatenation progress and completion.mTXVideoJoiner.setVideoJoinerListener(new TXVideoJoinerListener() {@Overridepublic void onJoinProgress(float progress) {}@Overridepublic void onJoinComplete(TXJoinerResult result) {}});// Start concatenation. Specify the output resolution and path.// Note: If all input videos share the same format and resolution, concatenation is fast.// Otherwise, re-encoding is required, which slows the process.mTXVideoJoiner.joinVideo(TXVideoEditConstants.VIDEO_COMPRESSED_540P, mOutputPath);
mTXVideoJoiner = new TXVideoJoiner(mContext);// Set the video source list.if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0) {return;}// Set a listener for preview progress and completion.mTXVideoJoiner.setTXVideoPreviewListener(new TXVideoPreviewListener() {@Overridepublic void onPreviewProgress(int time) {}@Overridepublic void onPreviewFinished() {}});// Prepare the preview view.TXVideoEditConstants.TXPreviewParam param = new TXVideoEditConstants.TXPreviewParam();param.videoView = mVideoView;param.renderMode = TXVideoEditConstants.PREVIEW_RENDER_MODE_FILL_EDGE;mTXVideoJoiner.initWithPreview(param);// Start preview.mTXVideoJoiner.startPlay();
mTXVideoJoiner = new TXVideoJoiner(mContext);// Set the video source list.if (mTXVideoJoiner.setVideoPathList(videoSourceList) < 0) {return;}// Set a listener for split-screen merging progress and completion.mTXVideoJoiner.setVideoJoinerListener(new TXVideoJoinerListener() {@Overridepublic void onJoinProgress(float progress) {}@Overridepublic void onJoinComplete(TXJoinerResult result) {}});// Configure split-screen layout parameters.SplitScreenParam splitScreenParam = new SplitScreenParam();splitScreenParam.canvasWidth = 720; // Canvas width during split-screen joiningsplitScreenParam.canvasHeight = 1280; // Canvas heightsplitScreenParam.durationControlMode = DurationControlMode.ALIGNS_TO_LONGEST; // Duration matches the longest video// Define positions and sizes for each video on the canvas.TXAbsoluteRect rect1 = new TXAbsoluteRect();TXAbsoluteRect rect2 = new TXAbsoluteRect();splitScreenParam.rects.add(rect1);splitScreenParam.rects.add(rect2);mTXVideoJoiner.setSplitScreenList(splitScreenParam);// Set audio mixing weights for each video (e.g., video1: 100% volume, video2: 0%).List<Float> volumes = new LinkedList<>();volumes.add(1.0f);volumes.add(0.0f);mTXVideoJoiner.setVideoVolumes(volumes);// Start split-screen merging.// If input videos differ in format or resolution, re-encoding is required, which may slow the process.mTXVideoJoiner.splitJoinVideo(TXVideoEditConstants.VIDEO_COMPRESSED_540P, mOutputPath);