UIQiniuShortVideo

概述

UIQiniuShortVideo 采用带有UI界面的方案,封装了七牛的短视频 SDK ,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、MV 特效、本地/云端存储在内的多种功能。

七牛开发者中心

iOS授权

  • 1.0.5版本后不用添加附加插件

七牛短视频 SDK需授权方可使用,开发者需要自己从七牛官方获取短视频 SDK,然后将短视频 SDK打包成一个附加自定义插件上传 YonBuilder移动开发 平台。制作方法如下:下载 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

uploadKey:

  • 类型:字符串类型
  • 描述:七牛上传文件的key,若不传sdk默认生成

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) {
       api.alert({msg: JSON.stringify(ret)});
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2