videoKit

来自于:开发者

compressVideo clipVideo captureScreen getVideoDuration

概述

本模块通过封装视频处理命令,提供本地视频文件压缩,手动选取时间段裁剪视频,任意时间点截屏以及获取视频时长的功能。

模块接口

compressVideo

压缩本地视频文件

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

params

path:

  • 类型:字符串
  • 默认值:无
  • 描述:通过文件选择器获得的本地视频文件url,不可为空。

quality:

  • 类型:字符串
  • 默认值:’m’
  • 描述:(可选项)视频压缩质量,取值l, m, h。其中l为low,m为medium,h为high。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. oper: 'complete', //字符串类型;操作状态:complete-完成;progress-进度
  3. info: './VideoKit/sample.mp4' //字符串类型:oper为complete时返回压缩文件的输出路径,oper为progress时返回压缩进度,如1,2,3...50...99,100
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 40003, //错误码, 数字类型
  3. msg: '文件压缩失败' //错误信息, 字符串类型。40001-文件不存在或者为空文件,40002-格式未知的视频文件
  4. }

示例代码

  1. var progress = document.getElementById('progress'); //显示进度
  2. var myVideo = document.getElementById('myVideo');
  3. var videoKit = api.require("videoKit");
  4. videoKit.compressVideo({
  5. path: "original.mp4"
  6. }, function(ret, err) {
  7. if (ret) {
  8. if (ret.oper == 'progress') {
  9. var percent = ret.info;
  10. $api.text(progress, '正在压缩视频 ' + percent + '% ......');
  11. } else if (ret.oper == 'complete') {
  12. $api.attr(myVideo, 'src', ret.info);
  13. }
  14. }
  15. });

可用性

Android系统

可提供的1.0.0及更高版本

clipVideo

手动选取时间段裁剪视频

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

params

path:

  • 类型:字符串
  • 默认值:无
  • 描述:通过文件选择器获得的本地视频文件url,不可为空。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. oper: 'complete', //字符串类型;操作状态:complete-完成
  3. info: './VideoKit/result.mp4' //字符串类型:oper为complete时返回裁剪后文件的输出路径
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 40005, //错误码, 数字类型
  3. msg: '参数错误' //错误信息, 字符串类型。40001-文件不存在或者为空文件,40002-格式未知的视频文件
  4. }

示例代码

  1. var videoKit = api.require("videoKit");
  2. videoKit.clipVideo({
  3. path: "original.mp4"
  4. }, function(ret, err) {
  5. if (ret && ret.oper == 'complete') {
  6. alert(ret.info);
  7. }
  8. });

可用性

Android系统

可提供的1.0.0及更高版本

captureScreen

任意时间点截屏

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

params

path:

  • 类型:字符串
  • 默认值: 无
  • 描述:通过文件选择器获得的本地视频文件url,不可为空。

startTime:

  • 类型: 字符串
  • 默认值: ‘0’
  • 描述:(可选项)截屏时间点,数量级为秒,如0,3.5,10等,超过总长报错。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;状态值,true|false
  3. info: './VideoKit/sample.jpg', //字符串类型: 生成的图片路径
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 40007, //错误码
  3. msg: '起始时间超出视频长度' //字符串类型;错误信息
  4. }

示例代码

  1. var videoKit = api.require("videoKit");
  2. videoKit.captureScreen({
  3. path: ret.list[0].path
  4. startTime: '10'
  5. }, function(ret, err) {
  6. if (ret && ret.status) {
  7. alert(ret.info);
  8. }
  9. });

可用性

Android系统

可提供的1.0.0及更高版本

getVideoDuration

获取视频总时长

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

params

path:

  • 类型:字符串
  • 默认值:无
  • 描述:通过文件选择器获得的本地视频文件url,不可为空。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. info: 84800 //字符串类型: 视频总时长,秒数*1000。如果视频是84.8秒,则结果为84800
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 40008, //错误码
  3. msg: '获取时长失败' //字符串类型;错误信息
  4. }

示例代码

  1. var videoKit = api.require("videoKit");
  2. videoKit.getVideoDuration({
  3. path: ret.list[0].path
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(ret.info);
  7. }
  8. });

可用性

Android系统

可提供的1.0.0及更高版本