# doc
**Repository Path**: cf_hc1980/doc
## Basic Information
- **Project Name**: doc
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-11-25
- **Last Updated**: 2021-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 腾讯短视频uniapp插件接口
### 一、短视频初始化
#### 1. 插件对象
```
//插件对象
var txugc = uni.requireNativePlugin('TXUGC-SdkWX');
```
#### 2. SDK初始化
```
//短视频SDK初始化
var licenceURL = "http://license.vod2.myqcloud.com/license/v1/f78c72bcdec1419779a830de1c97cee9/TXUgcSDK.licence";
var licenceKey = "c27f4aa3a0d49b87f6bd0c58860b20df";
txugc.setLicence(licenceURL, licenceKey);
```
### 二、短视频录制
#### 1. 视频预览控件标签
```
```
#### 2. 录制插件对象
```
var txugcrecord = uni.requireNativePlugin('TXUGC-Record');
```
#### 3. 启动画面预览
注意:必须再mounted()回调之后调用,不能再onload()里调用
```
var recordView = this.$refs.recordView;
recordView.startCameraSimplePreview({
videoQuality:1,//视频质量VIDEO_QUALITY_LOW=0,VIDEO_QUALITY_MEDIUM=1,VIDEO_QUALITY_HIGH=2
isFront:true,//是否前置摄像头
minDuration:5000,//最短录制时间
maxDuration:60000//最长录制时间
});
```
#### 4. 结束画面预览
注意:必须再mounted()回调之后调用,不能再onload()里调用
```
recordView.stopCameraPreview();
```
#### 5. 添加水印
```
var bitmapPath = ""; //水印图片所在路径
var params = {x:0.0 ,y: 0.5,width:0.5} //x,y,width为float
txugcrecord.setWatermark(bitmapPath, params);
```
#### 6. 开始录制
```
var ret = txugcrecord.startRecord();
```
#### 7. 停止录制
```
var ret = txugcrecord.stopRecord();
```
#### 8. 视频录制回调
```
txugcrecord.setVideoRecordListener(function(res){
console.log(res);
if (res.type == "onRecordComplete") {
var result = res.data;//录制完成
var retCode = result.retCode;//错误码
var descMsg = result.descMsg;//错误消息
var videoPath = result.videoPath;//视频路径
var coverPath = result.coverPath;//视频封面
if(retCode >= 0){
//录制成功
}
} else if (res.type == "onRecordProgress") {
var milliSecond = res.data;//录制进度
}
});
```
#### 9. 调整预览参数-切换视频录制分辨
```
var videoResolution = 0;//VIDEO_RESOLUTION_360_640 = 0,VIDEO_RESOLUTION_540_960 = 1,
//VIDEO_RESOLUTION_720_1280 =2;VIDEO_RESOLUTION_1080_1920 = 3;
txugcrecord.setVideoResolution(videoResolution );
```
#### 10. 调整预览参数- 切换视频录制码率
```
var videoBitrate= 6500;
txugcrecord.setVideoBitrate(videoBitrate);
```
#### 11. 调整预览参数 - 获取摄像头支持的最大焦距
```
var ret = txugcrecord.getMaxZoom();
```
#### 12. 调整预览参数 - 设置焦距
```
var zoom = 3;
txugcrecord.setZoom(3);
```
#### 13. 调整预览参数 - 切换摄像头
```
var sCamara= true;//true 切换到前置摄像头;false 切换到后置摄像头
txugcrecord.switchCamera(sCamara);
```
#### 14. 调整预览参数 - 打开闪光灯
```
var isTorch= false;//true 为打开, false 为关闭.
txugcrecord.toggleTorch(isTorch)
```
#### 15. 调整预览参数 - 设置聚焦位置
```
//手动聚焦时有效
var eventX = 2.0;//float,
var eventY = 2.0;//float
txugcrecord.setFocusPosition(eventX,eventY)
```
#### 16. 拍照/截图
```
txugcrecord.snapShot(function(res){
if (res.code == 0) {
var imageBase64Data = res.data;//图片的base64数据
}
});
```
#### 17. 录制过程 - 开始录制(指定输出视频文件地址和封面地址)
```
var videoFilePath = ""; //输出视频文件地址
var coverPath = ""; //封面地址
txugcrecord.startRecord2(videoFilePath, coverPath);
```
#### 18. 录制过程 - 开始录制(可以指定输出视频文件地址、视频分片存储地址、封面地址)
```
var videoFilePath = ""; //输出视频文件地址
var videoPartFolder = ""; //视频分片存储地址
var coverPath = ""; //封面地址
var ret = txugcrecord.startRecord2(videoFilePath, videoPartFolder , coverPath); //ret = 0,成功,其他失败
```
#### 19. 录制过程 - 暂停录制
```
var ret = txugcrecord.pauseRecord();
```
#### 20. 录制过程 - 继续录制
```
var ret = txugcrecord.resumeRecord();
```
#### 21. 录制过程 - 继续录制
```
var ret = txugcrecord.resumeRecord();
```
#### 22. 录制属性 - 设置横竖屏录制
```
var videoOrientation = 0; //RENDER_ROTATION_PORTRAIT = 0;RENDER_ROTATION_LANDSCAPE = 270;
txugcrecord.setHomeOrientation(videoOrientation );
```
#### 23. 录制属性 - 设置视频预览方向
```
var videoRenderRotation= 0; // 0,90,180,270
txugcrecord.setRenderRotation(videoRenderRotation);
```
#### 24. 录制属性 - 设置录制的宽高比
```
var videoAspectRatio= 0; // 宽高比为9_16 = 0, 3_4 = 1, 1_1 = 2, 16_9 = 3, 4_3 = 4;
txugcrecord.setAspectRatio(videoAspectRatio);
```
#### 25. 录制属性 - 设置视频录制速率
```
var videoRecordSpeed= 2; // SLOWEST = 0, SLOW = 1, NORMAL = 2, FAST = 3; FASTEST = 4;
txugcrecord.setRecordSpeed(videoRecordSpeed);
```
#### 26. 录制属性 - 设置麦克风的音量大小
```
var videoMicVolume= 1; // 播放背景音混音时使用,音量大小,1为正常音量,建议值为0-2
txugcrecord.setMicVolume(videoMicVolume);
```
#### 27. 录制属性 - 设置是否静音
```
var isMute= 1; //isMute 代表是否静音
txugcrecord.setMute(isMute);
```
#### 28. 添加背景音乐
```
var path = ""; //音乐路径
txugcrecord.setBGM(String path);
```
#### 29. 设置 BGM 播放回调
```
txugcrecord.setBGMNofify(function(res){
**_ //TODO SOMETHING_**
});
```
#### 30. 播放BGM
```
var startTime = 0;
var endTime = 0;
txugcrecord.playBGMFromTime(int startTime,int endTime);
```
#### 31. 停止播放BGM
```
txugcrecord.stopBGM();
```
#### 32. 暂停播放BGM
```
txugcrecord.pauseBGM();
```
#### 33. 继续播放 BGM
```
txugcrecord.resumeBGM();
```
#### 33. 音乐
```
txugcrecord.setBGMVolume();
```
### 三、短视频编辑
#### 1. 视频预览控件标签
```
```
#### 2. 编辑插件对象
```
var txugcediter = uni.requireNativePlugin('TXUGC-Editer');
```
#### 3. 设置预览界面
注意:必须再mounted()回调之后调用,不能再onload()里调用
```
//设置预览界面
var editerView= this.$refs.editerView;
var renderMode = 1;//1为填充模式(裁剪)2为适应模式(黑边)
editerView.initWithPreview(renderMode);
```
### 四、短视频拼接
#### 1. 视频预览控件标签
```
```
#### 2. 编辑插件对象
```
var txugcjoiner = uni.requireNativePlugin('TXUGC-Joiner');
```
#### 3. 设置预览界面
注意:必须再mounted()回调之后调用,不能再onload()里调用
```
//设置预览界面
var joinerView = this.$refs.joinerView;
var renderMode = 1;//1为填充模式(裁剪)2为适应模式(黑边)
joinerView.initWithPreview(renderMode);
```
#### 4. 预览事件回调
```
//预览事件回调
txugcjoiner.setTXVideoPreviewListener(function(res){
console.log(res);
if (res.type == "onPreviewProgress") {
var progress = res.data;//进度
} else if (res.type == "onPreviewFinished") {
//完成
}
});
```
#### 5. 设置待拼接的视频文件组
```
//设置拼接视频列表
var videoPaths = [""];//拼接视频路径列表
txugcjoiner.setVideoPathList(videoPaths);
```
#### 6. 视频播放开始
```
//开始播放
txugcjoiner.startPlay();
```
#### 7. 视频播放开始
```
//开始播放
txugcjoiner.startPlay();
```
#### 8. 视频播放暂停
```
暂停播放
txugcjoiner.pausePlay()
```
#### 9. 视频播放恢复
```
//恢复播放
txugcjoiner.resumePlay();
```
#### 10. 视频播放停止
```
//停止播放
txugcjoiner.stopPlay();
```
#### 11. 合成视频回调
```
//合成视频回调
txugcjoiner.setVideoJoinerListener(function(res) {
console.log(res);
if (res.type == "onJoinProgress") {
var progress = res.data;//进度
} else if (res.type == "onJoinComplete") {
var result = res.data;//完成
if(retCode >= 0){
//成功
} else {
console.log("视频合成失败", result.descMsg);//
}
}
});
```
#### 12. 合成视频
```
//生成最终文件
//分辨率
//VIDEO_RESOLUTION_360_640 = 0;VIDEO_RESOLUTION_540_960 = 1;
//VIDEO_RESOLUTION_720_1280 = 2;VIDEO_RESOLUTION_1080_1920 = 3;
var compressQuality = 1;
var videoOutputPath = "";//视频输出路径
txugcjoiner.joinVideo(compressQuality, videoOutputPath);
```
### 五、短视频上传发布
#### 1. 上传发布插件对象
```
var txugcpublish = uni.requireNativePlugin('TXUGC-Publish');
```
#### 2. 短视频上传事件回调
```
//短视频上传事件回调
txugcpublish.setVideoPublishListener(function(res){
console.log(res);
if (res.type == "onPublishComplete") {//发布完成
var result = res.data;
var retCode = result.retCode;//错误码
var descMsg = result.descMsg;//错误消息
if (retCode >= 0){
var videoId = result.videoId;//视频id
var videoURL = result.videoURL;//视频url封面
var videoURL = result.videoURL;//视频url封面
} else {
console.log("上传失败", descMsg);//错误消息
}
} else if (res.type == "onPublishProgress") {//录制进度
var result = res.data;
var uploadBytes = result.uploadBytes;
var totalBytes = result.totalBytes;
}
});
```
#### 3. 上传短视频
```
txugcpublish.publishVideo({
signature:"",//上传签名
videoPath:videoPath,//视频路径
coverPath:coverPath//封面路径
});
```