qiniuShortVideo
概述
qiniuShortVideo 封装了七牛的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、MV 特效、本地/云端存储在内的多种功能。
android编译及注意事项
- android使用升级环境编译
- android编译需在Android 4.3 (API 18) 及其以上
- android从1.0.7版本开始不需要上传自定义模块了
configuration
视频拍摄配置。
configuration({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)播放器的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;摄像头的预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)摄像头的预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;摄像头的预览视图的宽度;支持'aoto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;摄像头的预览视图的高度;支持'aoto';默认值:w的3/4
}
beauty:
- 类型:JSON 对象
- 描述:(可选项)美颜设置 (暂仅支持Android)
- 内部字段:
{
level: 0.5, // 数字类型,美颜程度
redden:0.5, // 数字类型,红润程度
whiten:0.5 // 数字类型,美白程度
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)摄像头的预览视图添加到指定窗口的名字
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)摄像头的预览视图是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
maxDuration:
- 类型:数字类型
- 描述:(可选项)视频录制的最大时长,单位为秒
- 默认:10
minDuration:
- 类型:数字类型
- 描述:(可选项)视频录制的最短时间,单位为秒;(android不支持)
- 默认:2
innerFocusViewShowEnable:
- 类型:布尔类型
- 描述:(可选项)手动对焦的视图动画;(android不支持)
- 默认:true
continuousAutofocusEnable:
- 类型:布尔类型
- 描述:(可选项)连续自动对焦;(android不支持)
- 默认:true
touchToFocusEnable:
- 类型:布尔类型
- 描述:(可选项)手动点击屏幕进行对焦;(android不支持)
- 默认:true
smoothAutoFocusEnabled:
- 类型:布尔类型
- 描述:(可选项)该属性适用于视频拍摄过程中用来减缓因自动对焦产生的镜头伸缩,使画面不因快速的对焦而产生抖动感;(android暂不支持)
- 默认:true
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频的文件类型;android只支持mp4
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoFrameRate:
- 类型:数字类型
- 描述:(可选项)采集的视频数据的帧率
- 默认:25
cameraPreviewSizeLevel:
- 类型:字符串类型
- 描述:(可选项)设置采集画面的分辨率 (ios不支持)
- 默认:480P
取值范围:
- 120P
- 240P
- 360P
- 480P
- 720P
- 960P
- 1080P
- 1200P
cameraPreviewSizeRatio:
- 类型:字符串类型
- 描述:(可选项)设置采集画面的长宽比 (ios不支持)
- 默认:16:9
取值范围:
- 16:9
- 4:3
videoSize:
- 类型:android为字符串类型,iOS为json对象
- 描述:(可选项)设置编码视频的分辨率
- 默认值:480*480(iOS不支持此默认值)
取值范围:
- 240*240
- 320*240
- 352*352
- 640*352
- 360*360
- 480*360
- 640*360
- 480*480
- 640*480
- 848*480
- 544*544
- 720*544
- 720*720
- 960*720
- 1280*720
- 1088*1088
- 1440*1088
iOS内部字段: 需要注意的是,这个参数影响的是视频编码时的分辨率,而非摄像头采集到数据的预览大小,传递给编码器的图像尺寸与此尺寸不同时,会按照AVVideoScalingModeResizeAspectFill对图像做剪切,从而确保图像不会出现压缩的现象。
{
w: 0, //数字类型;视频录制分辨率的width
h: 0, //数字类型;视频录制分辨率的height
}
encodingBitrate:
- 类型:数字类型
- 描述:(可选项)视频编码码率;单位Kbps;iOS说明:该参数的视频编码实际过程中,并不是恒定的数值,所以只能设定平均视频编码码率。
- 默认值:1000;iOS默认值:无
取值范围:(ios无取值范围)
- 500
- 800
- 1000
- 1200
- 1600
- 2000
- 2500
- 4000
- 8000
hwCodeEnable:
- 类型:布尔类型
- 描述:(可选项)是否开启 H.264 硬编 (ios不支持)
- 默认值:true true:硬编 false:软编
channelConfig:
- 类型:数字类型
- 描述:(可选项)音频声道 (ios不支持)
- 默认值: 1
取值范围:
- 1 //系统的 AudioFormat.CHANNEL_IN_MONO
- 2 //系统的 AudioFormat.CHANNEL_IN_STEREO,可能不兼容部分设备,请视情况使用
channels:
- 类型:数字类型
- 描述:(可选项)音频声道数量;目前只支持 1 (默认) 和 2,分别对应 channelConfig 声道设置的 1 与 2 (ios不支持)
- 默认值:1
fillMode:
- 类型:字符串
- 描述:(可选项)预览比例;(ios不支持)
- 默认值:preserveAspectRatio
取值范围:
'stretch' : Stretch to fill the full view, which may distort the image outside of its normal aspect ratio;
'preserveAspectRatio' : Maintains the aspect ratio of the source image, adding bars of the specified background color;
fileName:
- 类型:字符串
- 描述:(可选项)生成文件的名称,只是一个名称,不是路径,如果不写,模块随机生成一个,(ios不支持)
- 默认值:随机生成
sessionPreset:
- 类型:数字
- 描述:(可选项)采集时的画幅分辨率大小,需要注意的是指定分辨率的 sessionPreset 例如 1920x1080 并非所有机型的所有摄像头均支持,在设置相应的采集分辨率之前请务必保证做过充分的机型适配测试,避免在某些机型使用该机型摄像头不支持的 sessionPreset。另外,如果使用只指定采集质量的 sessionPreset,例如 medium,那系统会根据当前摄像头的支持情况使用相应质量等级的分辨率进行采集。此参数仅支持iOS
- 默认值:5
取值范围:
- 0 //high
- 1 //medium
- 2 //low
- 3 //352x288
- 4 //640x480
- 5 //1280x720
- 6 //1920x1080
- 7 //3840x2160(只支持iOS9(包含)以上,否则设置无效)
- 8 //1280x720
- 9 //960x540
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.configuration({
rect : {
x : 20,
y : 550,
w : 350,
h : 170
}, maxDuration : 20
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startCaptureSession
开启音视频采集。
startCaptureSession()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startCaptureSession();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopCaptureSession
停止音视频采集(Android 不支持该方法)
stopCaptureSession()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopCaptureSession();
可用性
iOS系统
可提供的1.0.0及更高版本
startRecording
开始录制视频。
startRecording()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startRecording();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopRecording
停止录制视频。
stopRecording()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopRecording();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelRecording
取消录制会停止视频录制并删除已经录制的视频段文件(包括本地视频文件),可以再调用startRecording和stopRecording进行录制,录制时间从零算起。
cancelRecording()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelRecording();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showPreviewView
显示摄像头的预览视图。
showPreviewView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showPreviewView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hidePreviewView
隐藏摄像头的预览视图。
hidePreviewView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hidePreviewView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeVideoRecorder
关闭视频拍摄功能,并移除摄像头的预览视图,如需启用视频拍摄功能需要重新调用configuration接口。
closeVideoRecorder()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeVideoRecorder();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setPreviewViewRect
设置摄像头的预览视图的坐标。
setPreviewViewRect({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)播放器的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:configuration中设置的x坐标
y: 0, //(可选项)数字类型;(可选项)模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:configuration中设置的y坐标
w: 300, //(可选项)数字类型;模块的宽度;默认值:configuration中设置的宽度
h: 200 //(可选项)数字类型;模块的高度;默认值:configuration中设置的高度
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo. setPreviewViewRect({
rect:{
x: 0,
y: 0,
w: 300,
h: 200
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getFilesCount
获取录制的视频段的总数目(从调用configuration接口算起)。
getFilesCount(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
count : 2 //数字类型;录制的视频段的总数目
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFilesCount(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
getTotalDuration
获取所有录制的视频段加起来的总时长(从调用configuration接口算起)。
getTotalDuration(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
totalDuration : 20 //数字类型;所有录制的视频段加起来的总时长
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getTotalDuration(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
getAllFiles
获取所有录制的视频段的地址(从调用configuration接口算起)。
getAllFiles(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
allFiles : [ //数组类型;所有录制的视频段的地址数组
'/var/mobile/Containers/20171204153729.mp4' : //字符串类型;视频路径
]
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getAllFiles(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
deleteAllFiles
删除所有录制的视频段,从调用configuration接口算起(也会将本地存储的视频删除,如再次调用startRecording进行录制,录制时间从零算起)。
deleteAllFiles()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.deleteAllFiles();
可用性
iOS系统
可提供的1.0.0及更高版本
deleteLastFile
删除上一个录制的视频段(也会将本地存储的视频删除,删除的视频段的时长也会从总时长中减去)。
deleteLastFile()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.deleteLastFile();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isTorchOn
获取是否开启闪光灯状态。
isTorchOn(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isTorchOn : true //布尔类型;是否开启闪光灯
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isTorchOn(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
torchOn
开启或关闭闪光灯。
torchOn({params})
params
torchOn:
- 类型:布尔类型
- 描述:(可选项)开启或关闭闪光灯
- 默认:false
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.torchOn();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
toggleCamera
切换前置/后置摄像头。
toggleCamera()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.toggleCamera();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeautifyModeOn
开启或关闭美颜功能。
setBeautifyModeOn({params})
params
on:
- 类型:布尔类型
- 描述:(可选项)开启或关闭美颜功能
- 默认:false
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setBeautifyModeOn();
可用性
iOS系统, Android系统
可提供的1.0.0及更高版本
setBeautify
设置对应 Beauty 的程度参数。
setBeautify({params})
params
beautify:
- 类型:数字类型
- 描述:(可选项)设置对应 Beauty 的程度参数,beautify 范围从 0 ~ 1,0 为不美颜
- 默认:0.5
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setBeautify();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setWhiten
设置美白程度(注意:如果美颜不开启,设置美白程度参数无效)。
setWhiten({params})
params
whiten:
- 类型:数字类型
- 描述:(可选项)设置美白程度,范围是从 0 ~ 1,0 为不美白
- 默认:0.5
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setWhiten();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRedden
设置红润的程度参数(注意:如果美颜不开启,设置美白程度参数无效)。
setRedden({params})
params
redden:
- 类型:数字类型
- 描述:(可选项)设置红润的程度参数,范围是从 0 ~ 1,0 为不红润
- 默认:0.5
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setRedden();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setWaterMark
开启水印。
setWaterMark({params})
params
origin:
- 类型:JSON 对象
- 描述:(可选项)水印图片位置
- 内部字段:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于摄像头预览视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于摄像头预览视图);默认值:0
}
path:
- 类型:字符串类型
- 描述:用于设置水印的图片路径,要求本地路径(widget://、fs://)
- 默认:无
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setWaterMark({
path : 'widget://res/qiniu_logo.png',
origin : {
x : 10,
y : 10
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
clearWaterMark
移除水印。
clearWaterMark()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.clearWaterMark();
可用性
iOS系统
可提供的1.0.0及更高版本
isRecording
是否处于录制状态。
isRecording(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isRecording : true //布尔类型;是否处于录制状态
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isRecording(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
recoderRate
设置视频拍摄速率,处于录制状态时,设置该值无效。
recoderRate({params})
params
recoderRate:
- 类型:字符串类型
- 描述:(可选项)设置视频拍摄速率
取值范围:
'normal' : 1x;
'slow' : 0.667x;
'topSlow' : 0.5x;
'fast' : 1.5x;
'topFast' : 2x
默认:'normal'
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.recoderRate();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
fillMode
摄像头预览视图中视频的填充方式。
fillMode({params})
params
fillMode:
- 类型:字符串类型
- 描述:(可选项)填充方式
取值范围:
'stretch' : Stretch to fill the full view, which may distort the image outside of its normal aspect ratio;
'preserveAspectRatio' : Maintains the aspect ratio of the source image, adding bars of the specified background color;
'preserveAspectRatioAndFill' : Maintains the aspect ratio of the source image, zooming in on its center to fill the view;
默认:'preserveAspectRatioAndFill'
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.fillMode();
可用性
iOS系统
可提供的1.0.0及更高版本
getFileDuration
获取视频/音频文件的总时长。
getFileDuration({params},callback(ret))
params
path:
- 类型:字符串类型
- 描述:视频/音频文件的路径,要求本地路径(widget://、fs://)(android不支持widget)
- 默认:无
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
duration :20 //数字类型;视频/音频文件的总时长
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFileDuration(
{
path : ''
},function(ret) {
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openFilterSelectView
打开滤镜选择视图。
openFilterSelectView({params})
params
y:
- 类型:数字类型
- 描述:(可选项)滤镜左上角的 y 坐标(相对于所属的 Window 或 Frame)
- 默认:0
useChinese:
- 类型:布尔类型
- 描述:滤镜名称是否使用中文
- 默认:false
fixedOn:
- 类型:字符串类型
- 描述:(可选项)滤镜选择视图添加到指定窗口的名字
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.openFilterSelectView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showFilterSelectView
显示滤镜选择视图。
showFilterSelectView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showFilterSelectView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hideFilterSelectView
隐藏滤镜选择视图。
hideFilterSelectView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hideFilterSelectView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeFilterSelectView
关闭滤镜选择视图。
closeFilterSelectView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeFilterSelectView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getFilterViewHeight
获取滤镜视图的高度。
getFilterViewHeight()
retrun
height:
- 类型:数字类型
- 滤镜视图高度:
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
var height = qiniuShortVideo.getFilterViewHeight();
alert(height);
可用性
Android系统
可提供的1.0.5及更高版本
getFilterInfo
获取滤镜信息。
getFilterInfo(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
FilterInfos : [ //数组类型;滤镜信息数组
{ //JSON对象;滤镜信息
'name' : '' //字符串类型;滤镜名称
'coverImagePath' : '' //字符串类型;滤镜封面(android不支持)
'colorImagePath' : '' //字符串类型;滤镜图片
'index' : 6 //数字类型;滤镜索引
}
]
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFilterInfo(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addFilter
根据索引给摄像头预览视图设置滤镜。
addFilter({params})
params
index:
- 类型:数字类型
- 描述:(可选项)滤镜索引,(android不支持)
- 默认:0
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addFilter();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
configurationVideoEditor
配置视频编辑预览视图。
configurationVideoEditor({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)播放器的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;视频编辑预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;视频编辑预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;视频编辑预览视图的宽度;支持'aoto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;视频编辑预览视图的高度;支持'aoto';默认值:w的3/4
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)视频编辑预览视图添加到指定窗口的名字
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)视频编辑预览视图是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
videoSize:
- 类型:JSON 对象
- 描述:(可选项)编辑时的预览分辨率;(android不支持,可以设置填充模式来改变预览大小)
- 默认值:原视频的分辨率
- 内部字段:
{
w: 0, //数字类型;编辑时的预览分辨率的width
h: 0, //数字类型;编辑时的预览分辨率的height
}
timeRange:
- 类型:JSON 对象
- 描述:(可选项)播放文件的 timeRange 范围
- 默认值:从开始到结束
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒;(android不支持,默认播放到结束)
}
loopEnabled:
- 类型:布尔类型
- 描述:(可选项)循环播放
- 默认:false
path:
- 类型:字符串类型
- 描述:(可选项)视频文件的路径,要求本地路径(widget://、fs://)(android不支持widget)
- 默认:调用configuration接口后录制的视频,若调用过scaleAsset接口,则为经过倍速处理后的视频
fileName:
- 类型:字符串
- 描述:(可选项)生成文件的名称,只是一个名称,不是路径,如果不写,模块随机生成一个,(ios不支持)
- 默认值:随机生成
rateType:
- 类型:数字类型
- 描述:(可选项)设置编辑后生成视频的倍速;(ios不支持)
- 默认是:1
- 取值范围:
- 0.25
- 0.5
- 1
- 2
- 4
fillMode:
- 类型:字符串
- 描述:(可选项)预览比例;(ios不支持)
- 默认值:preserveAspectRatio
取值范围:
'stretch' : Stretch to fill the full view, which may distort the image outside of its normal aspect ratio;
'preserveAspectRatio' : Maintains the aspect ratio of the source image, adding bars of the specified background color;
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.configurationVideoEditor({
rect : {
x : 20,
y : 550,
w : 350,
h : 170
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startEditing
加载编辑信息,实时预览编辑效果。
startEditing()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startEditing();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopEditing
停止实时预览编辑效果,效果上相当于暂停,调用startEditing可继续。
stopEditing()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopEditing();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showVideoEditor
显示视频编辑预览视图。
showVideoEditor()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showVideoEditor();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hideVideoEditor
隐藏视频编辑预览视图。
hideVideoEditor()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hideVideoEditor();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeVideoEditor
关闭视频编辑预览视图,若再次使用此功能需要重新调用configurationVideoEditor接口。
closeVideoEditor()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeVideoEditor();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVideoEditorRect
设置视频编辑预览视图的坐标。
setVideoEditorRect({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)视频编辑预览视图的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;视频编辑预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:configurationVideoEditor中设置的x坐标
y: 0, //(可选项)数字类型;(可选项)视频编辑预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:configurationVideoEditor中设置的y坐标
w: 300, //(可选项)数字类型;视频编辑预览视图的宽度;默认值:configurationVideoEditor中设置的宽度
h: 200 //(可选项)数字类型;视频编辑预览视图的高度;默认值:configurationVideoEditor中设置的高度
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setVideoEditorRect({
rect:{
x: 0,
y: 0,
w: 300,
h: 200
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
editorFillMode
视频编辑预览视图的填充方式。
editorFillMode({params})
params
fillMode:
- 类型:字符串类型
- 描述:(可选项)填充方式
取值范围:
'stretch' : Stretch to fill the full view, which may distort the image outside of its normal aspect ratio;
'preserveAspectRatio' : Maintains the aspect ratio of the source image, adding bars of the specified background color;
'preserveAspectRatioAndFill' : Maintains the aspect ratio of the source image, zooming in on its center to fill the view;(android不支持)
默认:'preserveAspectRatio'
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorFillMode();
可用性
iOS系统
可提供的1.0.0及更高版本
setVideoSize
设置视频的预览分辨率。
setVideoSize({params})
params
videoSize:
- 类型:JSON 对象
- 描述:(可选项)视频的预览分辨率
- 默认值:原视频的分辨率
- 内部字段:
{
w: 0, //数字类型;视频的预览分辨率的width
h: 0, //数字类型;视频的预览分辨率的height
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setVideoSize();
可用性
iOS系统
可提供的1.0.0及更高版本
setVolume
视频编辑时设置原音(前景)和混音(背景)音量。
setVolume({params})
params
volume:
- 类型:数字类型
- 描述:(可选项)音量 取值范围:0.0 - 1.0
- 默认值:0
bgVolume:
- 类型:数字类型
- 描述:(可选项)背景音量 取值范围:0.0 - 1.0
- 默认值:0
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setVolume();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getVolume
视频编辑时获取原视频的音量。
getVolume(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
volume :0 //数字类型;音量
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVolume(function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
editorSetWaterMark
视频编辑时开启水印。
editorSetWaterMark({params})
params
origin:
- 类型:JSON 对象
- 描述:(可选项)水印图片位置
- 内部字段:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于视频编辑预览视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于视频编辑预览视图);默认值:0
}
path:
- 类型:字符串类型
- 描述:用于设置水印的图片路径,要求本地路径(widget://、fs://)
- 默认:无
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorSetWaterMark({
path : 'widget://res/qiniu_logo.png',
origin : {
x : 10,
y : 10
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
editorClearWaterMark
视频编辑时移除水印。
editorClearWaterMark()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorClearWaterMark();
可用性
iOS系统
可提供的1.0.0及更高版本
addMusic
视频编辑时添加背景音乐。
addMusic({params})
params
timeRange:
- 类型:JSON 对象
- 描述:(可选项)播放文件的 timeRange 范围
- 默认值:使用整段音乐
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
musicPath:
- 类型:字符串类型
- 描述:音频文件的路径,要求本地路径(widget://、fs://)(android只支持fs)
- 默认:无
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addMusic({
musicPath : 'widget://res/haha.mp3',
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
updateMusic
视频编辑时更新背景音乐。
updateMusic({params})
params
timeRange:
- 类型:JSON 对象
- 描述:(可选项)播放文件的 timeRange 范围
- 默认值:使用整段音乐
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
volume:
- 类型:数字类型
- 描述:(可选项)音量
- 默认值:不更新背景音乐的音量
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.updateMusic();
可用性
iOS系统
可提供的1.0.0及更高版本
getMusicVolume
视频编辑时获取背景音乐的音量。
getMusicVolume(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
musicVolume :0 //数字类型;音量
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getMusicVolume(function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
addMVLayer
视频编辑时添加 MV 图层。
addMVLayer({params})
params
colorPath:
- 类型:字符串类型
- 描述:(可选项)彩色层视频的路径,要求本地路径(widget://、fs://)(android只支持fs)
- 默认:当 colorPath 和 alphaPath 都不传时,表示移除 MV 图层
alphaPath:
- 类型:字符串类型
- 描述:(可选项)被彩色层当作透明层的视频的路径,要求本地路径(widget://、fs://)(android只支持fs)
- 默认:当 colorPath 和 alphaPath 都不传时,表示移除 MV 图层
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addMVLayer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
editorAddFilter
视频编辑时添加滤镜。
editorAddFilter({params})
params
colorImagePath:
- 类型:字符串类型
- 描述:(可选项)当前使用的滤镜的颜色表图的路径,要求本地路径(widget://、fs://)(android只支持fs)
- 默认:当不传时,表示移除滤镜
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorAddFilter();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
replaceCurrentAsset
视频编辑时替换当前编辑的视频。
replaceCurrentAsset({params})
params
timeRange:
- 类型:JSON 对象
- 描述:(可选项)视频的 timeRange 范围
- 默认值:使用整段视频
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
path:
- 类型:字符串类型
- 描述:视频文件的路径,要求本地路径(widget://、fs://)
- 默认:无
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.replaceCurrentAsset({
path : 'widget://res/haha.mp4',
});
可用性
iOS系统
可提供的1.0.0及更高版本
saveVideo
保存编辑的视频。
saveVideo(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:保存回调
- 内部字段:
status:true //布尔类型;保存状态
filePath:'' //字符串类型;保存路径
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.saveVideo(function(ret){
alert(JSON.stringify(ret));
});
可用性
android系统
可提供的1.0.0及更高版本
configurationReverserEffect
时光倒流初始化。
configurationReverserEffect({params})
params
path:
- 类型:字符串类型
- 描述:(可选项)视频文件的路径,要求本地路径(widget://、fs://)
- 默认:调用configuration接口后录制的视频,若调用过scaleAsset接口,则为经过倍速处理后的视频
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.configurationReverserEffect();
可用性
iOS系统
可提供的1.0.0及更高版本
startReversing
执行时光倒流。
startReversing()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startReversing();
可用性
iOS系统
可提供的1.0.0及更高版本
isReversing
是否处于执行时光倒流状态。
isReversing(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isReversing : true //布尔类型;是否处于执行时光倒流状态
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isReversing(function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
scaleAsset
倍速特效,并显示在实时预览编辑窗口上,必须调用过configurationVideoEditor接口。
scaleAsset({params},callback(ret))
params
timeRange:
- 类型:JSON 对象
- 描述:(可选项)倍数处理时间段
- 默认值:需要倍速处理的整段视频
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
path:
- 类型:字符串类型
- 描述:(可选项)视频文件的路径,要求本地路径(widget://、fs://)
- 默认:调用configuration接口后录制的视频,若调用过scaleAsset接口,则为经过倍速处理后的视频
rateType:
- 类型:字符串类型
- 描述:(可选项)倍数处理的类型
取值范围:
'normal' : 1x;
'slow' : 0.667x;
'topSlow' : 0.5x;
'fast' : 1.5x;
'topFast' : 2x
默认:'normal'
callback(ret)
当倍速特效完成并显示在实时预览编辑窗口结束,会来到此回调。此回调只有触发事件,没有回调参数
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.scaleAsset();
可用性
iOS系统
可提供的1.0.0及更高版本
assetExport
视频合成导出。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
assetExport({params})
params
isExportMovieToPhotosAlbum:
- 类型:布尔类型
- 描述:(可选项)是否将视频导出到相册
- 默认:false
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频导出的文件类型
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
outputVideoSize:
- 类型:JSON 对象
- 描述:(可选项)视频导出的分辨率
- 默认值:原视频的分辨率
- 内部字段:
{
w: 0, //数字类型;视频导出的分辨率的width
h: 0, //数字类型;视频导出的分辨率的height
}
colorPath:
- 类型:字符串类型
- 描述:(可选项)彩色层视频的路径,要求本地路径(widget://、fs://)
- 默认:不设置
alphaPath:
- 类型:字符串类型
- 描述:(可选项)被彩色层当作透明层的视频的路径,要求本地路径(widget://、fs://)
- 默认:不设置
colorImagePath:
- 类型:字符串类型
- 描述:(可选项)当前使用的滤镜的颜色表图的路径,要求本地路径(widget://、fs://)
- 默认:不设置
path:
- 类型:字符串类型
- 描述:(可选项)视频文件的路径,要求本地路径(widget://、fs://)
- 默认:调用configuration接口后录制的视频
rateType:
- 类型:字符串类型
- 描述:(可选项)倍速特效,倍数处理的类型
取值范围:
'slow' : 0.667x;
'topSlow' : 0.5x;
'fast' : 1.5x;
'topFast' : 2x
默认:不设置
scaleTimeRange:
- 类型:JSON 对象
- 描述:(可选项)倍速特效,倍数处理时间段。设置rateType参数后此参数才有效
- 默认值:整段视频
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;时长,单位:秒
}
movieSettings:
- 类型:JSON 对象
- 描述:(可选项)视频信息
- 内部字段:
{
startTime: 0, //(可选项)数字类型;开始时间,单位:秒;默认值:0
duration: 10, //(可选项)数字类型;时长,单位:秒;默认值:整段视频
volume: 1, //(可选项)数字类型;音量大小;默认值:1
}
audioSettings:
- 类型:JSON 对象
- 描述:(可选项)背景音乐设置
- 默认值:不设置
- 内部字段:
{
musicPath: '', //(可选项)字符串类型;音乐文件的路径,要求本地路径(widget://、fs://);默认值:不传则不设置背景音乐,没有此字段则以下字段无效
startTime: 0, //(可选项)数字类型;开始时间,单位:秒;默认值:0
duration: 10, //(可选项)数字类型;时长,单位:秒;默认值:整段音乐时长
volume: 1, //(可选项)数字类型;音量大小;默认值:1
name: '', //(可选项)字符串类型;名称;默认值:''
}
waterMarkSettings:
- 类型:JSON 对象
- 描述:(可选项)水印设置
- 默认值:不设置
- 内部字段:
{
waterMarkPath: '', //(可选项)字符串类型;水印图片的路径,要求本地路径(widget://、fs://);默认值:不传则不设置水印,没有此字段则以下字段无效
size : { //(可选项)JSON 对象;水印大小;默认值:水印图片大小
w: 0, //(可选项)数字类型;水印的宽;默认值:水印图片的宽
h: 0, //(可选项)数字类型;水印的高;默认值:水印图片的高
}
point : { //(可选项)JSON 对象;水印位置;默认值:坐标原点
x: 0, //(可选项)数字类型;水印位置x坐标;默认值:0 y: 0, //(可选项)数字类型;水印位置y坐标;默认值:0
}
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.assetExport();
可用性
iOS系统
可提供的1.0.0及更高版本
cancelAssetExport
取消视频导出。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
cancelAssetExport()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelAssetExport();
可用性
iOS系统
可提供的1.0.0及更高版本
getAssetExportProgress
获取视频导出的进度。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
getAssetExportProgress(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
progress : 0.5 //数字类型;进度
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getAssetExportProgress(function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
transcoder
视频转码。(android获取保存结果请添加transcoder监听)
transcoder({params})
params
path:
- 类型:字符串类型
- 描述:视频文件的路径,要求本地路径(widget://、fs://)(android只支持fs)
- 默认:无
isExportMovieToPhotosAlbum:
- 类型:布尔类型
- 描述:(可选项)是否将视频导出到相册;(android不支持)
- 默认:false
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频导出的文件类型;(android只支持mp4)
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
outputFilePreset:
- 类型:字符串类型
- 描述:(可选项)转码后视频的质量;(android不支持)
取值范围:
'highest' : HighestQuality;
'low' : LowQuality;
'medium' : MediumQuality;
'480' : 640x480;
'540' : 960x540;
'720' : 1280x720;
'1080' : 1920x1080
默认:'highest'
timeRange:
- 类型:JSON 对象
- 描述:(可选项)需要转码的视频时间段;(android不支持)
- 默认值:视频的总时长
- 内部字段:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;时长,单位:秒
}
destSize:
- 类型:JSON对象
- 描述:(可选项)转码后的视频分辨率;(ios不支持)
- 默认值:原视频分辨率
- 内部字段:
{
w: 0, //数字类型;转码后的宽
h: 10, //数字类型;转码后的高
}
destBitrate:
- 类型:数字类型
- 描述:(可选项)视频转码后的码率;单位:Kbps;(ios不支持)
- 默认值:1000
取值范围:
- 500
- 800
- 1000
- 1200
- 1600
- 2000
- 2500
- 4000
- 8000
fileName:
- 类型:字符串
- 描述:(可选项)生成文件的名称,只是一个名称,不是路径,如果不写,模块随机生成一个,(ios不支持)
- 默认值:随机生成
reverse :
- 类型:布尔类型
- 描述:(可选项)是否进行时光倒流(视频倒置)(ios不支持)
- 默认值:false
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.transcoder({
path : ''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelTranscoding
取消转码流程。
cancelTranscoding()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelTranscoding();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
transcodingProgress
获取视频转码的进度。(android不支持,获取进度请添加transcoder监听)
transcodingProgress(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
progress : 0.5 //数字类型;进度
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.transcodingProgress(function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
movieCompose
多个视频拼接。
movieCompose({params})
params
paths:
- 类型:数组类型
- 描述:存放视频文件路径的数组,视频个数需要一个以上
- 默认:无
- 内部字段:
{
paths : [
'' , //字符串类型;视频文件的路径,要求本地路径(widget://、fs://);默认值:无(android不支持widget)
'' ,
''
]
}
isExportMovieToPhotosAlbum:
- 类型:布尔类型
- 描述:(可选项)是否将视频导出到相册(android不支持)
- 默认:false
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频导出的文件类型;(android只支持mp4)
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoSize:
- 类型:JSON 对象
- 描述:(可选项)拼接后视频的分辨率;(由于SDK的限制,android暂不支持自定义分辨率,开发者请从sizeLevel属性中选择分辨率)
- 默认值:第1个视频的分辨率
- 内部字段:
{
w: 0, //数字类型;分辨率的width
h: 0, //数字类型;分辨率的height
}
sizeLevel :
- 类型:字符串
- 描述:拼接后视频的分辨率;(ios不支持)
- 默认值:480x480
取值范围:
- 240*240
- 320*240
- 352*352
- 640*352
- 360*360
- 480*360
- 640*360
- 480*480
- 640*480
- 848*480
- 544*544
- 720*544
- 720*720
- 960*720
- 1280*720
- 1088*1088
- 1440*1088
videoFrameRate:
- 类型:数字类型
- 描述:(可选项)拼接后视频数据的帧率
- 默认:25
bitrate:
- 类型:数字类型
- 描述:(可选项)拼接后视频的码率
- 默认:1024*1000 bps
fileName:
- 类型:字符串
- 描述:(可选项)生成文件的名称,只是一个名称,不是路径,如果不写,模块随机生成一个,(ios不支持)
- 默认值:随机生成
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.movieCompose({
paths : [
'','',''
]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopComposing
停止视频拼接。
stopComposing()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopComposing();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
composeGif
视频帧/图片生成 GIF 动图。
composeGif({params})
params
images:
- 类型:数组类型
- 描述:存放图片路径的数组,图片个数需要2个或以上(android此字段可以存放视频路径,如果有多个只取第一个路径,只支持mp4类型的视频)
- 默认:无
- 内部字段:
{
images : [
'' , //字符串类型;图片的路径,要求本地路径(widget://、fs://);默认值:无
'' ,
''
]
}
gifName:
- 类型:字符串类型
- 描述:(可选项)Gif 的名称;
- 默认:内部会自动生成一个唯一的名称
interval:
- 类型:数字类型
- 描述:(可选项)Gif 动图每帧间隔设置
- 默认: 0.1f
isLoop
- 类型:布尔类型
- 描述:(可选项)gif是否循环;(ios不支持)
- 默认值:true
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.composeGif({
images : [
'','',''
]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelComposeGif
取消合成 Gif 动图。
cancelComposeGif()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelComposeGif();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
loadGif
展示 GIF 图。
loadGif({params})
params
images:
- 类型:数组类型
- 描述:存放图片路径的数组,图片个数需要2个或以上
- 默认:无
- 内部字段:
{
images : [
'' , //字符串类型;图片的路径,要求本地路径(widget://、fs://);默认值:无
'' ,
''
]
}
interval:
- 类型:数字类型
- 描述:(可选项)Gif 动图每帧间隔设置
- 默认: 0.1f
rect:
- 类型:JSON 对象
- 描述:(可选项)Gif展示视图的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;Gif展示视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;Gif展示视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;Gif展示视图的宽度;默认值:图片数组第一张图片的宽度
h: 200 //(可选项)数字类型;Gif展示视图的高度;默认值:图片数组第一张图片的高度
}
repeatCount:
- 类型:数字类型
- 描述:(可选项)gif播放重复次数,0 为无限循环
- 默认: 0
fixedOn:
- 类型:字符串类型
- 描述:(可选项)Gif展示视图添加到指定窗口的名字
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)Gif展示视图是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.loadGif({
images : [
'','',''
]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeGif
移除展示的 GIF 图。
removeGif()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.removeGif();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
viewRecorder
录屏。(由于七牛短视频sdk和引擎的原因,录屏功能android暂不支持)
viewRecorder({params},callback(ret))
params
maxDuration:
- 类型:数字类型
- 描述:(可选项)录屏的最大时长,单位为秒
- 默认:120
fixedOn:
- 类型:字符串类型
- 描述:(可选项) 录屏的窗口的名称
- 默认:主窗口
videoFrameRate:
- 类型:数字类型
- 描述:(可选项)帧率
- 默认:25
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:当达到设置的最大的时长,或者调用stopViewRecorder接口后,会来到这个回调
{
filePath : '' //字符串类型;录屏文件的路径
totalDuration : '' //数字类型;录屏总时长
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.viewRecorder((function(ret)
{
if (ret) alert(JSON.stringify(ret));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
stopViewRecorder
停止录屏。
stopViewRecorder()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopViewRecorder();
可用性
iOS系统
可提供的1.0.0及更高版本
uploadVideoFile
视频上传。
uploadVideoFile({params})
params
path:
- 类型:字符串类型
- 描述:视频文件的路径,要求本地路径(widget://、fs://)(android不支持widget)
- 默认:无
token:
- 类型:字符串类型
- 描述:上传视频空间 token
- 默认:无
videoKey:
- 类型:字符串类型
- 描述:(可选项)上传视频空间设置的 key
- 默认:当前上传视频文件的 hash 值
https:
- 类型:布尔类型
- 描述:(可选项)上传视频空间是否需要设置为 https 上传, true 为 https 上传,false 为 http 上传
- 默认:true
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.uploadVideoFile({
path : '',
token : ''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelUpload
取消上传。
cancelUpload()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelUpload();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
添加监听。
addEventListener({params},callback(ret))
params
name:
- 类型:字符串
- 描述:监听的事件的名字
- 取值范围:
- videoRecord: 视频录制
- reverserEffect: 时光倒流
- assetExport: 视频合成
- transcoder: 视频转码
- movieCompose: 视频拼接
- composeGif: 生成 GIF 动图
- upload: 视频上传
- imageVideoCompose: 图片视频拼接
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:当upload事件完成时,只有触发事件,没有回调参数
{
eventType : 'startVideoRecord' //字符串类型;视频录制事件;取值范围如下:
//uploadSuccess(上传成功,仅在upload事件下返回)
//startVideoRecord(开始录制)
//videoRecording(正在录制)(android不支持)
//deleteFile(删除了某一段视频,调用deleteLastFile会回调,调用deleteAllFiles不会回调)
//finishRecording(完成一段视频的录制,当达到设置的最大录制时间,或者调用stopRecording接口,(android在该事件中不支持totalDuration))
//maxDuration(在达到指定的视频录制时间后,如果再调用startRecording接口,会立即执行该回调。该回调功能是用于页面跳转,(android不支持此事件))
filePath : '' //字符串类型;录制的视频绝对路径;当eventType为startVideoRecord、videoRecording、deleteFile、finishRecording时返回;当reverserEffect、assetExport、transcoder、movieCompose、composeGif、imageVideoCompose事件完成会返回这个字段
fileDuration : 1 //数字类型;录制的视频段时长,单位:秒;当eventType为videoRecording、deleteFile、finishRecording时返回。当eventType为deleteFile时,返回的是删除的视频段的时长
totalDuration : 6 //数字类型;录制的视频(从调用configuration接口之后录制的视频)的总时长,单位:秒;(android单位是毫秒) 当eventType为videoRecording、deleteFile、finishRecording、maxDuration时返回。当eventType为deleteFile时,返回的是删除视频后剩余视频的总时长
errorMsg : '' //字符串类型;错误信息;当reverserEffect、assetExport、transcoder、movieCompose、composeGif、upload、imageVideoCompose事件执行发生错误时返回这个字段
progress : 0.6 //数字类型;进度;可以监听reverserEffect、assetExport、transcoder、movieCompose、upload、imageVideoCompose事件的进度
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addEventListener(
{
name : 'assetExport',
},function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeEventListener
移除监听。
removeEventListener({params})
params
name:
- 类型:字符串
- 描述:监听的事件的名称
- 取值范围:
- videoRecord: 视频录制
- reverserEffect: 时光倒流
- assetExport: 视频合成
- transcoder: 视频转码
- movieCompose: 视频拼接
- composeGif: 生成 GIF 动图
- upload: 视频上传
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.removeEventListener(
{
name : 'assetExport',
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
clearCache
清除保存在本地的所有视频文件。(android只是清除本模块生成的视频文件,生成的视频文件都保存在sd卡根目录下面的ShortVideo文件夹中)
clearCache()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.clearCache();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openStickerPanelView
打开贴图页面(该功能需要七牛授权)。
已废弃(本接口1.1.4及以上版本将不再支持)
openStickerPanelView({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)贴图页面的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;贴图页面左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)贴图页面左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;贴图页面的宽度;默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;贴图页面的高度;默认值:200
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)摄像头的预览视图添加到指定窗口的名字
- 默认:模块依附于当前 window
fixed:
- 类型:布尔类型
- 描述:(可选项)摄像头的预览视图是否随所属 window 或 frame 滚动
- 默认:true(不随之滚动)
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.openStickerPanelView({
rect : {
x : 20,
y : 550,
w : 350,
h : 170
},
});
可用性
iOS系统
可提供的1.0.3及更高版本
closeStickerPanelView
关闭贴图页面。
已废弃(本接口1.1.4及以上版本将不再支持)
closeStickerPanelView()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeStickerPanelView();
可用性
iOS系统
可提供的1.0.3及更高版本
cutVideo
剪辑视频。
cutVideo(params, callback(ret))
params
path
- 类型:字符串类型
- 描述:源视频文件路径。支持fs,widget(android只支持fs)
- 默认是:无
begin
- 类型:数字类型
- 描述:起始时间戳;单位:秒
- 默认值:无
end
- 类型:数字类型
- 描述:结束时间戳;单位:秒
- 默认值:无
outPath
- 类型:字符串类型
- 描述:目标视频文件路径;iOS不支持此参,iOS根据outputFileType参数自动返回对应格式视频文件路径
- 默认值:无
mode
- 类型:字符串类型
- 描述:剪辑模式; 取值范围:ACCURATE(精准模式)、 FAST(快速模式),iOS不支持此参数
- 默认值:ACCURATE
isExportMovieToPhotosAlbum:
- 类型:布尔类型
- 描述:(可选项)是否将视频导出到相册,android不支持此参数
- 默认:false
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频导出的文件类型,android不支持此参数
取值范围:
'mp4' : .mp4;
'mov' : .mov;
- 默认:'mp4'
outputVideoSize:
- 类型:JSON 对象
- 描述:(可选项)视频导出的分辨率,android不支持此参数
- 默认值:原视频的分辨率
- 内部字段:
{
w: 0, //数字类型;视频导出的分辨率的width
h: 0, //数字类型;视频导出的分辨率的height
}
callback(ret)
ret
- 类型:JSON
- 描述:剪辑回调
- 内部字段
status: true //布尔类型;操作结果; path:'' //字符串类型;剪辑后的文件路径 percentage:'0.1'//数字类型;剪辑进度;进度中不会有status和path的回调;
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cutVideo({path:'fs://123.mp4', begin:1234567890, end:1234567899, outPath:'fs://234.mp4'}, function(ret){
alert(JSON.stringify(ret))
});
可用性
iOS系统,Android系统
可提供的1.0.3及更高版本
cancelCutVideo
取消剪辑视频。
cancelCutVideo()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelCutVideo();
可用性
iOS系统,Android系统
可提供的1.0.3及更高版本
getVideoFrame
获取视频帧。
getVideoFrame(params, callback(ret))
params
path
- 类型:字符串类型
- 描述:源视频文件路径。支持fs,widget(android只支持fs)
- 默认是:无
outPath
- 类型:字符串类型
- 描述:图片保存路径;支持fs,widget(android只支持fs)
- 默认值:无
count
- 类型:数字类型
- 描述:返回多少张图片,数字根据视频质量可能不大准确,张数如果大于视频帧数则返回数小于count设定的值, android不支持此参数
- 默认值:100
keyFrame
- 类型:布尔类型
- 描述:是否限定返回关键帧,iOS不支持此参数
- 默认值:true
width
- 类型:数字类型
- 描述:帧宽度,iOS不支持此参数
- 默认值:100
height:
类型:数字类型,iOS不支持此参数
描述:帧高度
- 默认值:100
callback(ret)
ret
- 类型:JSON
- 描述:帧回调
- 内部字段
result: //数组类型;返回帧的封面地址和时间,iOS不支持此字段 result的内部字段: image: //字符串类型;图片地址;,iOS不支持此字段 time: //数字类型;帧时间;单位:毫秒,iOS不支持此字段 image: //字符类型,图片地址,图片地址分多次返回,android不支持此参数
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVideoFrame({path:'fs://123.mp4', outPath:'fs://'}, function(ret){
alert(JSON.stringify(ret))
});
可用性
iOS系统,Android系统
可提供的1.0.4及更高版本
getVideoFrameByTime
通过时间获取视频帧。
getVideoFrameByTime(params, callback(ret))
params
path
- 类型:字符串类型
- 描述:源视频文件路径。支持fs
- 默认是:无
outPath
- 类型:字符串类型
- 描述:图片保存路径;支持fs
- 默认值:无
time:
- 类型:数字类型
- 描述:要获取的视频帧所在的时间;单位:毫秒
- 默认值:无
keyFrame
- 类型:布尔类型
- 描述:是否限定返回关键帧
- 默认值:true
width
- 类型:数字类型
- 描述:帧宽度
- 默认值:0
height:
类型:数字类型
描述:帧高度
- 默认值:0
callback(ret)
ret
- 类型:JSON
- 描述:帧回调
- 内部字段
status: //布尔类型;返回状态 path: //字符串类型;图片地址
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVideoFrameByTime({path:'fs://123.mp4', outPath:'fs://', time:1000}, function(ret){
alert(JSON.stringify(ret))
});
可用性
Android系统
可提供的1.0.4及更高版本
insertVideo
加载视频草稿(即拍摄了一段视频保存到了草稿箱,在下次拍摄时,可以从草稿箱读取视频继续拍摄或编辑)
insertVideo(params)
params
path
- 类型:字符串类型
- 描述:视频草稿文件路径。支持fs,widget(android只支持fs)
- 默认是:无
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.insertVideo({path:'fs://123.mp4'});
可用性
iOS系统
可提供的1.1.0及更高版本
microPlastic
微整形。
已废弃(本接口1.1.4及以上版本将不再支持)
microPlastic({params})
params
key:
- 类型:字符串类型
- 描述:(可选项)参数 key
- 取值取下:
eyeSize:大眼
chinSize:下巴
noseSize:瘦鼻
mouthWidth:嘴型
archEyebrow:眉型
eyeDis:眼距
eyeAngle:眼角
jawSize:瘦脸
precent:
- 类型:数字类型
- 描述:参数值
- 取值范围:0-1
- 默认:0.5
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.microPlastic({key:'eyeSize','precent':0.6});
可用性
iOS系统
可提供的1.1.0及更高版本
cancelMicroPlastic
取消所有微整形。
已废弃(本接口1.1.4及以上版本将不再支持)
cancelMicroPlastic()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelMicroPlastic();
可用性
iOS系统
可提供的1.1.0及更高版本
previewSize
设置预览屏幕大小和分辨率(注意,录制的时候不可设置)。
previewSize({params})
params
size:
- 类型:JSON 对象
- 描述:(可选项)预览屏幕原大小
- 默认值:预览屏幕原大小
- 内部字段:
{
w: 0, //数字类型;预览屏幕宽
h: 0, //数字类型;预览屏幕长
}
videoSize:
- 类型:JSON 对象
- 描述:(可选项)编码视频的视频的分辨率,需要注意的是,这个参数影响的是视频编码时的分辨率,而非摄像头采集到数据的预览大小,传递给编码器的图像尺寸与此尺寸不同时,会按照AVVideoScalingModeResizeAspectFill对图像做剪切,从而确保图像不会出现压缩的现象。
- 默认值:编码视频的视频的原分辨率
- 内部字段:
{
w: 0, //数字类型;视频的预览分辨率的width
h: 0, //数字类型;视频的预览分辨率的height
}
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.previewSize({size:{w:500,h:500},videoSize:{w:480,h:845}});
可用性
iOS系统
可提供的1.1.0及更高版本
imageVideoComposer
图片、GIF 图和视频混排。
imageVideoComposer({params})
params
medias:
- 类型:json数组类型
- 描述:存放图片、GIF 图和视频的数组
- 内部字段:
{
medias : [{
mediaType: 0 , //数字类型;媒体文件类型,0:图片,1:视频,2:GIF
path:'' , //字符串类型;媒体文件路径,要求本地路径,支持fs、widget
imageDuration: 3.0,//数字类型;图片转换为视频的时长,默认为3.0,即3秒;建议大于2秒;多媒体类型为图片时有效;默认:3.0
loopCount: 1,//数字类型;如果当前媒体文件是 GIF,则代表 GIF 转为视频的时候,GIF 循环播放的次数,如果当前媒体文件不是 GIF,则 loopCount 不会被使用默认:1,即不做循环 (仅iOS支持)
gifDuration:, //数字类型;GIF图总时长,仅mediaType为2时有效(仅android支持)默认值:3
transitionTime:, //数字类型 ;过度动画时间(仅android支持)默认值:1
}]
}
videoSize:
- 类型:JSON 对象
- 描述:(可选项)合成视频文件的分辨率(仅iOS支持)
- 默认值:544x960
- 内部字段:
{
w: 0, //数字类型;分辨率的width;默认:544
h: 0, //数字类型;分辨率的height;默认:960
}
androidVideoSize:
- 类型:数字类型
- 描述:(可选项)合成文件分辨率
- 取值范围:0:240P_1 , 1:240_2
2:352P_1 , 3:352P_2 4:360P_1 , 5:360P_2 , 6:360P_3 7:480P_1 , 8:480P_2 , 9:480P_3 10:544P_1 , 11:544P_2 12:720P_1 , 13:720P_2 , 14:720P_3 15:1088P_1 , 16:1088P_2
- 默认值:4
outputFileType:
- 类型:字符串类型
- 描述:(可选项)视频导出的文件类型(仅iOS支持)
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoFrameRate:
- 类型:数字类型
- 描述:(可选项)合成视频文件的帧率
- 默认:30
bitrate:
- 类型:数字类型
- 描述:(可选项)合成视频文件的码率
- 默认:1024*1000 bps
isExportMovieToPhotosAlbum:
- 类型:布尔类型
- 描述:(可选项)是否将视频导出到相册(仅iOS支持)
- 默认:false
disableTransition:
- 类型:布尔类型
- 描述:(可选项)是否禁用转场(仅iOS支持)
- 默认:false
transitionDuration:
- 类型:数字类型
- 描述:(可选项)转场动画持续的时长,默认为 1.0,即 1 秒. 如果 transitionDuration 的值大于合并的视频中最短时长,则将使用合并的视频中最短视频的时长作为转场动画的时长。仅当 disableTransition 为 false 的时候,transitionDuration 才生效
- 默认:1.0
musicURL:
- 类型:字符串类型
- 描述:(可选项)背景音乐的路径,要求本地路径,支持fs、widget
musicVolume:
- 类型:数字类型
- 描述:(可选项)背景音乐音量,取值范围(0 ~ 1.0)
- 默认:1.0
movieVolume:
- 类型:数字类型
- 描述:(可选项)原视频的音量,取值范围(0 ~ 1.0)
- 默认:1.0
transitionType:
- 类型:数字类型
- 描述:(可选项)转场类型。仅当 disableTransition 为 false 的时候,transitionType 才生效(仅iOS支持)
取值范围:
0 : 淡入淡出
1 : 无
默认:0
composerPriorityType:
- 类型:数字类型
- 描述:(可选项)拼接策略. 仅当 disableTransition 为 false 的时候,composerPriorityType 才生效
取值范围:
0 : 以拼接之后,单个视频时间段内音视频同步优先,这是默认模式:这种模式的好处是无论拼接多少个文件,总是能保证拼 接后的文件音视频是同步的,不好之处是拼接处可能会有音频的卡顿
1 : 以拼接之后,音视频播放连续性优先:这种模式的好处是无论拼接多少个文件,总是能保证拼接后的文件播放是流畅的, 不好之处是可能引起音视频不同步
2 : 以拼接的文件视频通道长度为准,当参与拼接文件的音频通道时长比视频通道时长长的时候,将多出的音频数据丢弃掉。 当视音频通道时长比视频通道时长短的视频,则将音频通道补齐和视频通道一样长。当一段视频中,音频数据和视频数据时长相 差较大(超过 0.1 秒)时,不建议使用这种模式
3 : 以拼接的文件音频通道长度为准,当参与拼接文件的视频通道时长比音频通道时长长的时候,将多出的视频数据丢弃掉。 当视频通道时长比音频通道时长短的视频,则将视频通道补齐和音频通道一样长。当一段视频中,音频数据和视频数据时长相差 较大(超过 0.1 秒)时,不建议使用这种模式
默认:0
outVideoPath:
- 类型:字符串类型
- 描述:输出视频路径,支持fs路径(仅android支持)
- 示例:‘fs://video/video1.mp4’
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.imageVideoComposer({
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopImageVideoComposer
停止图片、GIF 图和视频混排。
stopImageVideoComposer()
示例代码
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopImageVideoComposer();