zySmallVideo
来自于:勇可可立即使用
open clearCache getThumbnail openNew close getScreenInfo
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
开始使用
使用模块之前必须先在代码中申请必要权限。
//申请相机、录音、存储视频到本地权限
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:
- 类型:字符串
- 描述:ios的分辨率设置 越清晰 视频越大 仅ios可用
- 默认值:AVAssetExportPresetMediumQuality (可在这里查看设置 https://developer.apple.com/search/?q=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:
- 类型:字符串
- 描述:ios的分辨率设置 越清晰 视频越大 仅ios可用
- 默认值:AVAssetExportPresetMediumQuality (可在这里查看设置 https://developer.apple.com/search/?q=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及更高版本