更新记录

1.0.2(2020-11-09)

1、增加部分控制及增加返回参数 2、优化录制完成视频保存部分,更加流程

1.0.1(2020-10-21)

1、返回结果中增加视频封面 2、解决已知问题

1.0.0(2020-07-14)

初始化发布

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


1、插件简介

提供短视频录制,支持自定义时长、倒计时、摄像头切换、多种分辨率及质量选择,支持视频录制及编码方式,同时支持录制过程背景音频播放(可用于语音播报指引)。

2、插件使用说明

2.1、插件实例化

const dlvideo = uni.requireNativePlugin('DLHC-AliVideo');

2.2、调用组件进行视频录制

dlvideo.record({
    minDuration: 2000,
    maxDuration: 10000,
    resolutionMode: 3,
    ratioMode: 2,
    videoQuality: "HD",
    cameraType: 0,
    recordMode: 0,
    videoCodec: 0,
    sortMode: 0,
    useAudio: true,
    audioPath: "https://img.tukuppt.com/newpreview_music/08/99/45/5c8971b3df47794783.mp3",
}, result => {
    //_self.tmpData = result;
    //此处获取到视频路径后进行逻辑处理
    plus.nativeUI.toast(JSON.stringify(result))
});

2.3、参数详细说明

参数名称 参数说明 默认值
resolutionMode 视频分辨率: 0=360P 1=480P 2=540P 3=720P 3
ratioMode 宽高比例: 0=3:4 1=1:1 2=9:16 2
videoQuality 视频质量:SSD、HD、SD、LD、PD、EPD HD
cameraType 默认摄像头: 0=back,1=front 0
minDuration 视频录制最小时长;2s 2000
maxDuration 视频录制最大时长:60s 60000
recordMode 视频录制模式:0=点击录制 1=按住录制 2=自动 0
videoCodec 视频编码方式:0=H264_HARDWARE(硬件编码) 1=H264_SOFT_OPENH264(软件编码) 2=H264_SOFT_FFMPEG(ffmpeg编码) 0
useAudio 是否使用录制时播放背景音频,true=是 false=否
audioPath 音频播放远程地址或本地绝对路径
videoSavePath 录制视频存储路径
needClip 是否需要多段录制 false true true
rotationMode 屏幕方向 1=竖屏 2=横屏 1
timeTextMode 显示计时信息 0=正计时 1=倒计时 1
useZdyTxt 居中文字提示,false=不使用 true=使用 false
zdyTxt 文字内容
zdyTxtColor 文字颜色 #ffffff

2.4、录制成功返回参数

录制成功返回数据:
{
    "code": 200,
    "data": {
        "videoPath": "/storage/emulated/0/DCIM/Camera/2020071435431669.mp4",
        "thumbnail": "/storage/emulated/0/DCIM/Camera/2020071435431669_img.jpg",
        "duration": "50000",//时长,单位毫秒
        "width": "480",
        "height": "850",
        "length": "1352000"//文件大小,单位Bytes
    }
}

针对时长和文件大小单位转换可以通过js处理,以下为举例:
    renderSize: function(value){
        if(null==value||value==''){
            return "0 Bytes";
        }
        var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
        var index=0;
        var srcsize = parseFloat(value);
        index=Math.floor(Math.log(srcsize)/Math.log(1024));
        var size =srcsize/Math.pow(1024,index);
        size=size.toFixed(2);//保留的小数位数
        return size+unitArr[index];
    },
    formatTime: function(time){
        if (typeof time !== 'number' || time < 0) {
            return time
        }

        var hour = parseInt(time / 3600)
        time = time % 3600
        var minute = parseInt(time / 60)
        time = parseInt(time % 60)
        var second = time

        return ([hour, minute, second]).map(function (n) {
            n = n.toString()
            return n[1] ? n : '0' + n
        }).join(':')
    }

3、运行步骤

3.1、manifest.json 文件,选中“App 原生插件配置”,选择云端插件,在弹出的插件中勾选“视频录制插件”对应的插件。

3.2、打自定义基座

运行测试需要先打自定义基座,在HBuilderX中找到 运行》运行到手机或模拟器》制作自定义调式基座,点击在弹层中按要求填写打包内容,打包即可,具体操作说明请参见:https://ask.dcloud.net.cn/article/35115

3.3、选择自定义基座运行

在HBuilderX中找到 运行》运行到手机或模拟器》运行基座选择》自定义调试基座,选择后运行项目即可。

隐私、权限声明

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.RECORD_VIDEO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

本插件用到阿里云短视频基础版sdk,正式使用需要获取阿里云授权

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

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