UIQiniuShortVideo
来自于:AC模块工作室立即使用
概述
UIQiniuShortVideo 采用带有UI界面的方案,封装了七牛的短视频 SDK ,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、MV 特效、本地/云端存储在内的多种功能。
iOS授权
- 1.0.5版本后不用添加附加模块
七牛短视频 SDK需授权方可使用,开发者需要自己从七牛官方获取短视频 SDK,然后将短视频 SDK打包成一个附加自定义模块上传 APICloud 平台。制作方法如下:下载 UIQiniuShortVideoAppendix 模块 zip 包并解压,把 zip 包内 target 目录下的 PLShortVideoKit.framework 文件替换为自己从七牛官方获取的短视频 SDK。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。
android SDK授权
由于七牛短视频SDK是付费项目,未经授权的app录制时会提示“无法录制视频”,需要联系七牛商务进行授权(注意:1.0.4之后需要七牛官方授权)
使用此模块贴图功能之前需先配置 config.xml 文件,方法如下
- 配置示例:
- 1.0.5版本后不用配置此config文件
<feature name="UIQiniuShortVideo">
<param name="iOSAppKey" value="25662805"/>
<!-- 模块版本1.0.4之后不需要该参数 --!>
<param name="androidLicense" value="25662805"/>
</feature>
android编译及注意事项
- android使用升级环境编译
- android编译需在Android 4.3 (API 18) 及其以上
- android从1.0.3版本开始不需要上传自定义模块了
open
打开短视频界面。 注意:如果要将视频上传至七牛云,需要配置appKey,uploadToken,domain 参数
open({params})
params
token:
- 类型:字符串类型
- 描述:上传视频空间 token
- 默认:无
appKey:
- 类型:字符串类型
- 描述:七牛云存储appKey(该参数暂仅支持Android,iOS不需要传此参数)
uploadToken:
- 类型:字符串类型
- 描述:七牛云存储token
domain:
- 类型:字符串类型
- 描述:七牛云存储域名
storageDir:
- 类型:字符串类型
- 描述:视频保存路径(仅支持fs:// & 本地路径)(该参数暂仅支持Android)
- 默认:Android系统默认保存在sdcard下的 ShortVideo目录下
cacheDir:
- 类型:字符串类型
- 描述:首帧缓存路径(仅支持fs:// & 本地路径)
- 默认:fs://ShortVideo
cameraPreviewSetting:
- 类型:JSON对象
- 描述:相机预览设置 (目前仅Android支持)
- 内部字段:
{
previewSizeRatioPos:0, // 数字类型;预览窗口比例
previewSizeLevelPos:1 // 数字类型;预览窗口大小
}
encodeVideoSetting:
- 类型:JSON对象
- 描述:相机预览设置 (目前仅Android支持)
- 内部字段:
{
encodingSizeLevelPos:0, // 数字类型;视频编码大小
encodingBitrateLevelPos:1 // 数字类型;编码比特率
}
previewSizeRatioPos 取值如下:
- 0 RATIO_4_3,
- 1 RATIO_16_9
previewSizeLevelPos 取值如下:
- 0 SIZE_LEVEL_240P,
- 1 SIZE_LEVEL_360P,
- 2 SIZE_LEVEL_480P,
- 3 SIZE_LEVEL_720P,
- 4 SIZE_LEVEL_960P,
- 5 SIZE_LEVEL_1080P,
- 6 SIZE_LEVEL_1200P,
encodingSizeLevelPos 取值如下:
- 0 320x240
- 1 352x352
- 2 640x352
- 3 360x360
- 4 480x360
- 5 640x360
- 6 480x480
- 7 640x480
- 8 848x480
- 9 544x544
- 10 720x544
- 11 720x720
- 12 960x720
- 13 1280x720
- 14 1088x1088
- 15 1440x1088
encodingBitrateLevelPos 取值如下:
- 0 500 * 1000,
- 1 800 * 1000,
- 2 1000 * 1000,
- 3 1200 * 1000,
- 4 1600 * 1000,
- 5 2000 * 1000,
- 6 2500 * 1000,
- 7 4000 * 1000,
- 8 8000 * 1000,
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, // 布尔类型;上传是否成功
msg:'', // 字符串类型;上传失败的错误信息
path:'', // 字符串类型;保存在七牛云的存储路径
firstFrameImgPath:'' ,// 字符串类型;视频首帧图片路径
key:'', //
hash:'', //
ext:'', //字符串类型;首帧图片的格式
imageWidth:'', //数字类型;首帧图片的宽
imageHeight:'', //数字类型;首帧图片的高
fileSize:'', //数字类型;首帧图片的内存大小
}
示例代码
var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
UIQiniuShortVideo.open({
token : ''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
clearCache
清除保存在本地的所有视频文件。
clearCache()
示例代码
var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
UIQiniuShortVideo.clearCache();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
close
关闭录制页面
close()
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:, //布尔类型;关闭是否成功
}
示例代码
var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
UIQiniuShortVideo.close();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
makeGif
制作GIF图
makeGif()
Params
videoPath:
- 类型:字符串
- 描述:视频路径(Android仅支持 fs & 本地文件路径)
startTimes:
- 类型:数字
- 描述:开始时间
endTimes:
- 类型:数字
- 描述:结束时间
pictureCount:
- 类型:数字
- 描述:总输出帧数
outputWidth:
- 类型:数字
- 描述:输出宽度
outputHeight:
- 类型:数字
- 描述:输出高度
gifFps:
- 类型:数字
- 描述:输出帧率
isLoop:
- 类型:布尔
- 描述:是否循环
savePath:
- 类型:字符串
- 描述:gif图保存路径(Android仅支持 fs & 本地文件路径)(仅支持安卓)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType:'success',// 字符串;回调事件
errorCode:0, // 数字;错误码(仅在eventType为failed时回调)
progress:0.5 // 数字;生成进度(仅在eventType为progress时回调) (仅支持安卓)
path:'' //字符串类型;生成的gif图的路径 (仅支持iOS)
}
- eventType取值:
- success 成功
- failed 失败
- canceled 取消 (仅支持安卓)
- progress 生成进度 (仅支持安卓)
示例代码
var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
UIQiniuShortVideo.makeGif({
videoPath:'',
startTimes:,
endTimes:,
pictureCount:,
outputWidth:,
outputHeight:,
gifFps:,
isLoop:,
savePath:''
}, function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本