更新记录

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

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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();

隐私、权限声明

1. 本插件需要申请的系统权限列表:

相机 麦克风 相册

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的SDK采集数据请参考其官方说明:https://promotion.aliyun.com/ntms/act/shortvideo.html

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问