UIQiniuShortVideo

来自于:AC模块工作室立即使用

open clearCache close makeGif

概述

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文件
  1. <feature name="UIQiniuShortVideo">
  2. <param name="iOSAppKey" value="25662805"/>
  3. <!-- 模块版本1.0.4之后不需要该参数 --!>
  4. <param name="androidLicense" value="25662805"/>
  5. </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支持)
  • 内部字段:
  1. {
  2. previewSizeRatioPos:0, // 数字类型;预览窗口比例
  3. previewSizeLevelPos:1 // 数字类型;预览窗口大小
  4. }

encodeVideoSetting:

  • 类型:JSON对象
  • 描述:相机预览设置 (目前仅Android支持)
  • 内部字段:
  1. {
  2. encodingSizeLevelPos:0, // 数字类型;视频编码大小
  3. encodingBitrateLevelPos:1 // 数字类型;编码比特率
  4. }

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 对象
  • 内部字段:
  1. {
  2. status:, // 布尔类型;上传是否成功
  3. msg:'', // 字符串类型;上传失败的错误信息
  4. path:'', // 字符串类型;保存在七牛云的存储路径
  5. firstFrameImgPath:'' ,// 字符串类型;视频首帧图片路径
  6. key:'', //
  7. hash:'', //
  8. ext:'', //字符串类型;首帧图片的格式
  9. imageWidth:'', //数字类型;首帧图片的宽
  10. imageHeight:'', //数字类型;首帧图片的高
  11. fileSize:'', //数字类型;首帧图片的内存大小
  12. }

示例代码

  1. var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
  2. UIQiniuShortVideo.open({
  3. token : ''
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearCache

清除保存在本地的所有视频文件。

clearCache()

示例代码

  1. var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
  2. UIQiniuShortVideo.clearCache();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭录制页面

close()

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型;关闭是否成功
  3. }

示例代码

  1. var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
  2. 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 对象
  • 内部字段:
  1. {
  2. eventType:'success',// 字符串;回调事件
  3. errorCode:0, // 数字;错误码(仅在eventType为failed时回调)
  4. progress:0.5 // 数字;生成进度(仅在eventType为progress时回调) (仅支持安卓)
  5. path:'' //字符串类型;生成的gif图的路径 (仅支持iOS)
  6. }
  • eventType取值:
    • success 成功
    • failed 失败
    • canceled 取消 (仅支持安卓)
    • progress 生成进度 (仅支持安卓)

示例代码

  1. var UIQiniuShortVideo = api.require('UIQiniuShortVideo');
  2. UIQiniuShortVideo.makeGif({
  3. videoPath:'',
  4. startTimes:,
  5. endTimes:,
  6. pictureCount:,
  7. outputWidth:,
  8. outputHeight:,
  9. gifFps:,
  10. isLoop:,
  11. savePath:''
  12. }, function(ret) {
  13. if (ret) {
  14. alert(JSON.stringify(ret));
  15. }
  16. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本