zySmallVideo

来自于:勇可可立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

开始使用

使用模块之前必须先在代码中申请必要权限。

//申请相机、录音、存储视频到本地权限
api.requestPermission({
    list:['camera','microphone','storage']
}, function(ret, err){
});

概述

微信简介

zySmallVideo是一个仿微信录制小视频的模块,模块可以【点击拍照、长按录制】限制录制时间和圈的颜色,以及视频的分辨率。(请在云编译右上角高级设置中将ios设置为8.0,android设置为4.0.3)

模块接口

openNew

打开录制小视频(新) 点击拍照 长按录制

openNew({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:
    {
      x: 0,   //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
      y: 0,   //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
      w: api.frameWidth, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
      h: api.frameWidth//(可选项)数字类型;模块的高度;默认:所属的 Window 或 Frame 的宽度
    }
    

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认值:模块依附于当前 window

fixed:

类型:布尔 描述:(可选项)模块是否不随所属 window 或 frame 滚动 默认值:true(不随之滚动)

videoInfo:

  • 类型:JSON 对象
  • 描述: 安卓专用 苹果无效(可选项)视频高级设置 不懂请勿修改
  • 内部字段:
    {
    //videoSize_w:720,//视频分辨率 宽 默认模块会自动查找最适合比例的 宽高比 若自己设置 请从 getScreenInfo的videoSizes中找比例
    //videoSize_h:1280,//视频分辨率 高 默认
    setOutputFormat:2,//录制格式 默认2 mp4  0(DEFAULT) 1(THREE_GPP) 2(MPEG_4默认) 3(RAW_AMR) 4(AMR_WB) 5(AAC_ADIF) 6(AAC_ADTS) 7(OUTPUT_FORMAT_RTP_AVP) 8(OUTPUT_FORMAT_MPEG2TS) 9(WEBM)
    setVideoEncoder:2,//编码格式 默认2 h264 0(DEFAULT) 1(H263) 2(H264默认) 3(MPEG_4_SP) 4(VP8) 5(HEVC)
    setAudioEncoder:3,//音频格式应该是 默认3 aac  0(DEFAULT) 1(AMR_NB) 2(AMR_WB) 3(AAC默认) 4(HE_AAC) 5(AAC_ELD) 6(VORBIS)
    }
    

AVAssetExportPreset:

videoColor:

  • 类型:长整型
  • 描述:(可选项)录制圈的颜色 仅ios可用 0xcd0000
  • 默认值:0xcd0000

MaxRecordTime:

  • 类型:数字型
  • 描述:(可选项)录制视频的秒数
  • 默认值:10

MinRecordTime:

  • 类型:数字型
  • 描述:(可选项)录制最小时间秒数
  • 默认值:1

MinTimeText:

  • 类型:字符串
  • 描述:(可选项)时间少于录制最小时间秒数时 弹出的提示
  • 默认值:录制时间过短

setFeatures:

  • 类型:数字型
  • 描述:(可选项)设置拍照和录像 1001只拍照 1002只录像 1003两者都可以 默认1003
  • 默认值:1003

setTip:

  • 类型:字符串
  • 描述:(可选项)设置按钮上的提示词 长按拍摄等
  • 默认值:空

setBackIcon:

  • 类型:字符串
  • 描述:(可选项)自定义返回图标 默认向下键头 支持widget fs 等路径图片
  • 默认值:空

setBackShow:

  • 类型:数字型
  • 描述:(可选项)设置返回图标是否显示 1是 0否
  • 默认值:1

setCameraIcon:

  • 类型:字符串
  • 描述:(可选项)自定义切换摄像头图标 支持widget fs 等路径图片
  • 默认值:空

setCameraShow:

  • 类型:数字型
  • 描述:(可选项)右上角切换摄像头是否显示 1是 0否
  • 默认值:1

cameraInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)摄像头 设置样式
  • 内部字段:
    {
    fit_xy:false,//图片是否拉伸占满宽高  默认false
    w:120,// 摄像头宽度 默认 120
    h:120,// 摄像头高度 默认 92
    margin_l:0,//距左 默认都是0
    margin_r:35,//距右
    margin_t:45,//距上
    margin_b:0,//距下
    }
    

foucsInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)点击的对焦框 样式
  • 内部字段:
    {
    color:"#cd0000",//线条颜色 默认16AE16
    width:14,//线条宽度 默认4
    }
    

recordInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)录制时的参数
  • 内部字段:
    {
    button_radius:120,//外圆半径 默认120  在分辨率宽小于1080的手机上 会同比例缩小(下面都是一样的)  如需自己设置请适配屏幕例:api.screenWidth*120/1080   
    button_inside_radius:90,//内圆半径 默认90
    progress_color:"#cd0000",//进度条颜色 默认16AE16
    outside_color:"#DCDCDC",//外圆背景色 默认DCDCDC
    inside_color:"#FFFFFF",//内圆背景色 默认FFFFFF
    strokeWidth:15,//进度条宽度 默认15
    outside_add_size:48,//长按外圆半径变大的Size 默认48
    inside_reduce_size:30,//长按内圆缩小的Size 默认30
    }
    

confirmInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)确认框参数
  • 内部字段:
    {
    fit_xy:false,//图片是否拉伸占满宽高  默认false
    img:"",//设置自定义图片
    w:220,//宽 默认200
    h:220,//高 默认200
    margin_r:170, //确认按距右
    }
    

cancelInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)取消框参数
  • 内部字段:
    {
    fit_xy:false,//图片是否拉伸占满宽高  默认false
    img:"",//设置自定义图片
    w:220,//宽 默认200
    h:220,//高 默认200
    margin_l:170,//确认按距左
    }
    

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,//布尔型 是否成功
    type:"",//字符串;正确时返回  captureSuccess拍照成功  recordSuccess录制成功
    result: "",    //字符型;错误时返回错误提示  正确时返回缩略图 
    "url":"",    //字符型;录制视频时才返回的视频地址
    "fileSize":"3.28"    // 字符型;返回的视频大小 单位M
    "duration":3333 //视频时长 单位毫秒
}

示例代码

//不写参数可直接使用 参数请查看 论坛示例代码
var zySmallVideo = api.require('zySmallVideo');
zySmallVideo.openNew({
},function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

Android系统 IOS系统

可提供的1.0.10及更高版本 ios为1.0.14

close

关闭openNew (因模块依附于Frame 在安卓返回键的时候 请判断调用关闭模块)

close()

示例代码

var zySmallVideo = api.require('zySmallVideo');
zySmallVideo.close();

可用性

Android,IOS系统

可提供的1.0.10及更高版本 ios为1.0.14

getScreenInfo

获取【安卓】屏幕支持预览、拍照、视频尺寸

getScreenInfo(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  "result":"success",
  "myScreenSize":"1080-1800",//当前可打开全屏录制的 宽高比
  "pictureSizes":[{"2592":"4608"},...],//当前点击拍照的尺寸的集合  拍照时程序会自动识别最适合的
  "previewSizes":[{"1080":"1920"},...],//当前预览画面的尺寸的集合  预览时程序会自动识别最适合的
  "videoSizes":[{"2160":"4096"},...],//当前录制视频的尺寸的集合  录制时程序会自动识别最适合的 安卓可以在videoInfo中自己设置 必须本集合存在才可设置 不然会闪退
}

示例代码

zySmallVideo.getScreenInfo(function(ret, err){
  console.log(JSON.stringify(ret));
});

可用性

Android

可提供的1.0.16及更高版本

open

打开录制小视频

open({params}, callback(ret, err))

params

MaxRecordTime:

  • 类型:数字型
  • 描述:(可选项)录制视频的秒数(默认5秒,安卓可能会比实际少1秒)

videoColor:

  • 类型:android字符串/ios长整型
  • 描述:(可选项)录制圈的颜色 可以这么写(api.systemType=="ios"?0xcd0000:"#cd0000",)
  • 默认值:android#000000/ios0xcd0000

AVAssetExportPreset:

mVideoSizeW:

  • 类型:数字型
  • 描述:android的分辨率宽设置 越清晰 视频越大 仅android可用(看实际情况填写,可能有失败的情况)
  • 默认值:720

mVideoSizeH:

  • 类型:数字型
  • 描述:android的分辨率高设置 越清晰 视频越大 仅android可用(看实际情况填写,可能有失败的情况)
  • 默认值:1280

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result: "success",    //字符型;success成功  cancel取消
    "fileUrl":"",    //字符型;视频地址
    "filePic":"",    //字符型;视频缩略图
    "fileSize":"3.28"    // 字符型;返回的视频大小 单位M
    "duration":3333 //视频时长 单位毫秒
}

示例代码

var zySmallVideo = api.require('zySmallVideo');
zySmallVideo.open({
    MaxRecordTime: 10,
    videoColor: api.systemType=="ios"?0xcd0000:"#cd0000",
    AVAssetExportPreset:"AVAssetExportPreset1280x720",
    mVideoSizeW:720,
    mVideoSizeH:1280
},function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearCache

清除视频的缓存

clearCache(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result: "success",    //字符型;success成功
}

示例代码

var zySmallVideo = api.require('zySmallVideo');
zySmallVideo.clearCache(function(ret, err){
    console.log(JSON.stringify(ret));
    if(ret.result = "success"){
        api.toast({msg:'清除成功'});
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getThumbnail

得到视频的缩略图

getThumbnail({params},callback(ret))

params

fileUrl:

  • 类型:字符型
  • 描述:(必填)视频地址

fileName:

  • 类型:字符型
  • 描述:(可选项)自定义缩略图名字
  • 默认值:默认为视频名

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result: "success",    //字符型;success成功
    "filePic":"",    //字符型;视频缩略图
    "fileSize":"3.28"    // 字符型;返回的视频大小 单位M
}

示例代码

var zySmallVideo = api.require('zySmallVideo');
zySmallVideo.getThumbnail({
    fileUrl:filePath,
    fileName:""
},function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本