更新记录
1.7(2023-12-27)
增加视频编辑是文本字体样式设置功能。
1.6(2023-04-18)
1、增加裁剪相关接口。 2、增加视频导入相关接口。
1.5(2022-12-12)
更新短视频sdk版本
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
阿里云短视频(标准版)SDK插件
一、初始化
1. 插件对象
//插件对象
var ASV = uni.requireNativePlugin('AliSV-SdkWX');
2. 检查权限
//检查并授权相机和麦克风权限
ASV.checkPermissions(function(res){
console.log(res);
//检查并授权相册权限
ASV.checkAlbumPermission(function(res2){
console.log(res2);
});
});
3. 短视频初始化
//短视频初始化
ASV.registerSDK(function(ret){
console.log(ret);//true:初始化成功 false:失败
});
二、录制
1. 录制插件和控件标签
<!-- 录制预览标签 -->
<asv_record_view ref="recordView" style="width: 100%;height: 400px;"
@onViewCreated="onViewCreated">
</asv_record_view>
//录制插件对象
var ASVRecord = uni.requireNativePlugin('ASV-Record');
2. 创建录制器
//创建录制器
ASVRecord.createRecorder({
videoWidth:720,
videoHeight:1280
});
3. 设置录制回调
//设置录制回调
ASVRecord.setOnRecordCallback(function(res){
console.log(res);
if (res.type == "onInitReady") {//录制初始化回调
} else if (res.type == "") {//录制进度回调
var duration = res.data;//当前已录制时间
//that.currentDuration = that.lastDuration + duration;
} else if (res.type == "onClipComplete") {//录制完毕的回调
var validClip = res.data.validClip;// 标记该片段是否有效,如果录制时间太短,会返回false
if (validClip == true) {
var clipDuration = res.data.clipDuration;//该片段的长度
/*that.clips.push({
label: (clipDuration/1000).toFixed(0) + 's',
clipDuration: clipDuration
})//*/
}
//that.onNextChanged();
} else if (res.type == "onError") {//录制错误回调
var errorCode = res.data;//错误码
} else if (res.type == "onMaxDuration") {//达到最大时长
//停止录制
//that.stopRecording();
} else if (res.type == "onFinish") {//合成完毕的回调, 在finishRecording接口调用后
var outputPath = res.data;//合成视频地址
//that.toSubmit(outputPath);
}
});
4. 设置视频输出路径
var videoPath = plus.io.convertLocalFileSystemURL("_doc/video.mp4");
ASVRecord.setOutputPath(videoPath);
5. 设置最大录制时长
//设置最大录制时长
ASVRecord.setMaxDuration(60000);
6. 设置最小录制时长
ASVRecord.setMinDuration(2000);
7. 设置相机
var cameraType = 1;//0:前置相机 1:后置相机
ASVRecord.setCamera(cameraType);
8. 设置基础美颜
//设置美颜
var beautyLevel = 100;//取值范围0-100
ASVRecord.setBeautyLevel(beautyLevel);
9. 绑定预览控件,开启预览
onViewCreated() {
//绑定预览控件
this.$refs.recordView.setDisplayView();
//开启预览
this.$refs.recordView.startPreview();
},
10. 开启预览
ASVRecord.startPreview();
11. 停止预览
ASVRecord.stopPreview();
12. 切换相机
//切换相机
ASVRecord.switchCamera();
13. 设置闪光灯
if (this.frontCamera) {
ASVRecord.setLight("off");
} else {
if (this.onLight) {
ASVRecord.setLight("torch");
} else {
ASVRecord.setLight("off");
}
}
14. 拍照
var imagePath = plus.io.convertLocalFileSystemURL("_doc/shot.jpeg");
ASVRecord.takeSnapshotWithFile(imagePath, function(path){});
15. 拍照无滤镜
var imagePath = plus.io.convertLocalFileSystemURL("_doc/shot.jpeg");
ASVRecord.takePictureWithFile(imagePath, function(path){});
16. 开始录制
//开始录制
ASVRecord.startRecording();
17. 停止录制
//停止录制
ASVRecord.stopRecording();
18. 结束录制
//结束录制并合成分段视频
ASVRecord.finishRecording();