zySmallVideo

来自于:勇可可立即使用

open clearCache getThumbnail openNew close getScreenInfo

论坛示例

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

开始使用

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

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

概述

微信简介

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

模块接口

openNew

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

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

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:

    1. {
    2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
    3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
    4. w: api.frameWidth, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
    5. h: api.frameWidth//(可选项)数字类型;模块的高度;默认:所属的 Window 或 Frame 的宽度
    6. }

fixedOn:

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

fixed:

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

videoInfo:

  • 类型:JSON 对象
  • 描述: 安卓专用 苹果无效(可选项)视频高级设置 不懂请勿修改
  • 内部字段:

    1. {
    2. //videoSize_w:720,//视频分辨率 宽 默认模块会自动查找最适合比例的 宽高比 若自己设置 请从 getScreenInfo的videoSizes中找比例
    3. //videoSize_h:1280,//视频分辨率 高 默认
    4. 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)
    5. setVideoEncoder:2,//编码格式 默认2 h264 0(DEFAULT) 1(H263) 2(H264默认) 3(MPEG_4_SP) 4(VP8) 5(HEVC)
    6. setAudioEncoder:3,//音频格式应该是 默认3 aac 0(DEFAULT) 1(AMR_NB) 2(AMR_WB) 3(AAC默认) 4(HE_AAC) 5(AAC_ELD) 6(VORBIS)
    7. }

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 对象
  • 描述:安卓专用 苹果无效(可选项)摄像头 设置样式
  • 内部字段:

    1. {
    2. fit_xy:false,//图片是否拉伸占满宽高 默认false
    3. w:120,// 摄像头宽度 默认 120
    4. h:120,// 摄像头高度 默认 92
    5. margin_l:0,//距左 默认都是0
    6. margin_r:35,//距右
    7. margin_t:45,//距上
    8. margin_b:0,//距下
    9. }

foucsInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)点击的对焦框 样式
  • 内部字段:

    1. {
    2. color:"#cd0000",//线条颜色 默认16AE16
    3. width:14,//线条宽度 默认4
    4. }

recordInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)录制时的参数
  • 内部字段:

    1. {
    2. button_radius:120,//外圆半径 默认120 在分辨率宽小于1080的手机上 会同比例缩小(下面都是一样的) 如需自己设置请适配屏幕例:api.screenWidth*120/1080
    3. button_inside_radius:90,//内圆半径 默认90
    4. progress_color:"#cd0000",//进度条颜色 默认16AE16
    5. outside_color:"#DCDCDC",//外圆背景色 默认DCDCDC
    6. inside_color:"#FFFFFF",//内圆背景色 默认FFFFFF
    7. strokeWidth:15,//进度条宽度 默认15
    8. outside_add_size:48,//长按外圆半径变大的Size 默认48
    9. inside_reduce_size:30,//长按内圆缩小的Size 默认30
    10. }

confirmInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)确认框参数
  • 内部字段:

    1. {
    2. fit_xy:false,//图片是否拉伸占满宽高 默认false
    3. img:"",//设置自定义图片
    4. w:220,//宽 默认200
    5. h:220,//高 默认200
    6. margin_r:170, //确认按距右
    7. }

cancelInfo:

  • 类型:JSON 对象
  • 描述:安卓专用 苹果无效(可选项)取消框参数
  • 内部字段:

    1. {
    2. fit_xy:false,//图片是否拉伸占满宽高 默认false
    3. img:"",//设置自定义图片
    4. w:220,//宽 默认200
    5. h:220,//高 默认200
    6. margin_l:170,//确认按距左
    7. }

callback(ret)

ret:

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

示例代码

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

可用性

Android系统 IOS系统

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

close

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

close()

示例代码

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

可用性

Android,IOS系统

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

getScreenInfo

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

getScreenInfo(callback(ret, err))

callback(ret)

ret:

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

示例代码

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

可用性

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 对象
  • 内部字段:
  1. {
  2. result: "success", //字符型;success成功 cancel取消
  3. "fileUrl":"", //字符型;视频地址
  4. "filePic":"", //字符型;视频缩略图
  5. "fileSize":"3.28" // 字符型;返回的视频大小 单位M
  6. "duration":3333 //视频时长 单位毫秒
  7. }

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearCache

清除视频的缓存

clearCache(callback(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getThumbnail

得到视频的缩略图

getThumbnail({params},callback(ret))

params

fileUrl:

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

fileName:

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

callback(ret)

ret:

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

示例代码

  1. var zySmallVideo = api.require('zySmallVideo');
  2. zySmallVideo.getThumbnail({
  3. fileUrl:filePath,
  4. fileName:""
  5. },function(ret, err){
  6. alert(JSON.stringify(ret));
  7. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本