# 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//封面路径 }); ```