configuration startCaptureSession stopCaptureSession startRecording stopRecording cancelRecording showPreviewView hidePreviewView closeVideoRecorder setPreviewViewRect getFilesCount getTotalDuration getAllFiles deleteAllFiles deleteLastFile isTorchOn torchOn toggleCamera setBeautifyModeOn setBeautify setWhiten setRedden setWaterMark clearWaterMark isRecording recoderRate fillMode getFileDuration openFilterSelectView showFilterSelectView hideFilterSelectView closeFilterSelectView getFilterViewHeight getFilterInfo addFilter configurationVideoEditor startEditing stopEditing showVideoEditor hideVideoEditor closeVideoEditor setVideoEditorRect editorFillMode setVideoSize setVolume getVolume editorSetWaterMark editorClearWaterMark addMusic updateMusic getMusicVolume addMVLayer editorAddFilter replaceCurrentAsset saveVideo configurationReverserEffect startReversing isReversing scaleAsset assetExport cancelAssetExport getAssetExportProgress transcoder cancelTranscoding transcodingProgress movieCompose stopComposing composeGif cancelComposeGif loadGif removeGif viewRecorder stopViewRecorder uploadVideoFile cancelUpload addEventListener removeEventListener clearCache openStickerPanelView closeStickerPanelView cutVideo cancelCutVideo getVideoFrame getVideoFrameByTime insertVideo microPlastic cancelMicroPlastic previewSize imageVideoComposer stopImageVideoComposer
qiniuShortVideo 封装了七牛的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、MV 特效、本地/云端存储在内的多种功能。
android编译及注意事项
视频拍摄配置。
configuration({params})
rect:
{
x: 0, //(可选项)数字类型;摄像头的预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)摄像头的预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;摄像头的预览视图的宽度;支持'aoto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;摄像头的预览视图的高度;支持'aoto';默认值:w的3/4
}
beauty:
{
level: 0.5, // 数字类型,美颜程度
redden:0.5, // 数字类型,红润程度
whiten:0.5 // 数字类型,美白程度
}
fixedOn:
fixed:
maxDuration:
minDuration:
innerFocusViewShowEnable:
continuousAutofocusEnable:
touchToFocusEnable:
smoothAutoFocusEnabled:
outputFileType:
类型:字符串类型
描述:(可选项)视频的文件类型;android只支持mp4
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoFrameRate:
cameraPreviewSizeLevel:
类型:字符串类型
描述:(可选项)设置采集画面的分辨率 (ios不支持)
默认:480P
取值范围:
cameraPreviewSizeRatio:
类型:字符串类型
描述:(可选项)设置采集画面的长宽比 (ios不支持)
默认:16:9
取值范围:
videoSize:
类型:android为字符串类型,iOS为json对象
描述:(可选项)设置编码视频的分辨率
默认值:480*480(iOS不支持此默认值)
取值范围:
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
## 示例代码
```js
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.configuration({
rect : {
x : 20,
y : 550,
w : 350,
h : 170
}, maxDuration : 20
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启音视频采集。
startCaptureSession()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startCaptureSession();
iOS系统,Android系统
可提供的1.0.0及更高版本
停止音视频采集(Android 不支持该方法)
stopCaptureSession()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopCaptureSession();
iOS系统
可提供的1.0.0及更高版本
开始录制视频。
startRecording()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startRecording();
iOS系统,Android系统
可提供的1.0.0及更高版本
停止录制视频。
stopRecording()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopRecording();
iOS系统,Android系统
可提供的1.0.0及更高版本
取消录制会停止视频录制并删除已经录制的视频段文件(包括本地视频文件),可以再调用startRecording和stopRecording进行录制,录制时间从零算起。
cancelRecording()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelRecording();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示摄像头的预览视图。
showPreviewView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showPreviewView();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏摄像头的预览视图。
hidePreviewView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hidePreviewView();
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭视频拍摄功能,并移除摄像头的预览视图,如需启用视频拍摄功能需要重新调用configuration接口。
closeVideoRecorder()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeVideoRecorder();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置摄像头的预览视图的坐标。
setPreviewViewRect({params})
rect:
{
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及更高版本
获取录制的视频段的总数目(从调用configuration接口算起)。
getFilesCount(callback(ret))
ret:
{
count : 2 //数字类型;录制的视频段的总数目
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFilesCount(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
获取所有录制的视频段加起来的总时长(从调用configuration接口算起)。
getTotalDuration(callback(ret))
ret:
{
totalDuration : 20 //数字类型;所有录制的视频段加起来的总时长
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getTotalDuration(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
获取所有录制的视频段的地址(从调用configuration接口算起)。
getAllFiles(callback(ret))
ret:
{
allFiles : [ //数组类型;所有录制的视频段的地址数组
'/var/mobile/Containers/20171204153729.mp4' : //字符串类型;视频路径
]
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getAllFiles(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
删除所有录制的视频段,从调用configuration接口算起(也会将本地存储的视频删除,如再次调用startRecording进行录制,录制时间从零算起)。
deleteAllFiles()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.deleteAllFiles();
iOS系统
可提供的1.0.0及更高版本
删除上一个录制的视频段(也会将本地存储的视频删除,删除的视频段的时长也会从总时长中减去)。
deleteLastFile()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.deleteLastFile();
iOS系统,Android系统
可提供的1.0.0及更高版本
获取是否开启闪光灯状态。
isTorchOn(callback(ret))
ret:
{
isTorchOn : true //布尔类型;是否开启闪光灯
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isTorchOn(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启或关闭闪光灯。
torchOn({params})
torchOn:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.torchOn();
iOS系统,Android系统
可提供的1.0.0及更高版本
切换前置/后置摄像头。
toggleCamera()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.toggleCamera();
iOS系统,Android系统
可提供的1.0.0及更高版本
开启或关闭美颜功能。
setBeautifyModeOn({params})
on:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setBeautifyModeOn();
iOS系统, Android系统
可提供的1.0.0及更高版本
设置对应 Beauty 的程度参数。
setBeautify({params})
beautify:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setBeautify();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置美白程度(注意:如果美颜不开启,设置美白程度参数无效)。
setWhiten({params})
whiten:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setWhiten();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置红润的程度参数(注意:如果美颜不开启,设置美白程度参数无效)。
setRedden({params})
redden:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setRedden();
iOS系统,Android系统
可提供的1.0.0及更高版本
开启水印。
setWaterMark({params})
origin:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于摄像头预览视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于摄像头预览视图);默认值:0
}
path:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setWaterMark({
path : 'widget://res/qiniu_logo.png',
origin : {
x : 10,
y : 10
}
});
iOS系统
可提供的1.0.0及更高版本
移除水印。
clearWaterMark()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.clearWaterMark();
iOS系统
可提供的1.0.0及更高版本
是否处于录制状态。
isRecording(callback(ret))
ret:
{
isRecording : true //布尔类型;是否处于录制状态
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isRecording(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置视频拍摄速率,处于录制状态时,设置该值无效。
recoderRate({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({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({params},callback(ret))
path:
ret:
{
duration :20 //数字类型;视频/音频文件的总时长
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFileDuration(
{
path : ''
},function(ret) {
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
打开滤镜选择视图。
openFilterSelectView({params})
y:
useChinese:
fixedOn:
fixed:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.openFilterSelectView();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示滤镜选择视图。
showFilterSelectView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showFilterSelectView();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏滤镜选择视图。
hideFilterSelectView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hideFilterSelectView();
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭滤镜选择视图。
closeFilterSelectView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeFilterSelectView();
iOS系统,Android系统
可提供的1.0.0及更高版本
获取滤镜视图的高度。
getFilterViewHeight()
##retrun
height:
var qiniuShortVideo = api.require('qiniuShortVideo');
var height = qiniuShortVideo.getFilterViewHeight();
alert(height);
Android系统
可提供的1.0.5及更高版本
获取滤镜信息。
getFilterInfo(callback(ret))
ret:
{
FilterInfos : [ //数组类型;滤镜信息数组
{ //JSON对象;滤镜信息
'name' : '' //字符串类型;滤镜名称
'coverImagePath' : '' //字符串类型;滤镜封面(android不支持)
'colorImagePath' : '' //字符串类型;滤镜图片
'index' : 6 //数字类型;滤镜索引
}
]
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getFilterInfo(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据索引给摄像头预览视图设置滤镜。
addFilter({params})
index:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addFilter();
iOS系统,Android系统
可提供的1.0.0及更高版本
配置视频编辑预览视图。
configurationVideoEditor({params})
rect:
{
x: 0, //(可选项)数字类型;视频编辑预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;视频编辑预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;视频编辑预览视图的宽度;支持'aoto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;视频编辑预览视图的高度;支持'aoto';默认值:w的3/4
}
fixedOn:
fixed:
videoSize:
{
w: 0, //数字类型;编辑时的预览分辨率的width
h: 0, //数字类型;编辑时的预览分辨率的height
}
timeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒;(android不支持,默认播放到结束)
}
loopEnabled:
path:
fileName:
rateType:
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()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startEditing();
iOS系统,Android系统
可提供的1.0.0及更高版本
停止实时预览编辑效果,效果上相当于暂停,调用startEditing可继续。
stopEditing()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopEditing();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示视频编辑预览视图。
showVideoEditor()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.showVideoEditor();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏视频编辑预览视图。
hideVideoEditor()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.hideVideoEditor();
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭视频编辑预览视图,若再次使用此功能需要重新调用configurationVideoEditor接口。
closeVideoEditor()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeVideoEditor();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置视频编辑预览视图的坐标。
setVideoEditorRect({params})
rect:
{
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({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({params})
videoSize:
{
w: 0, //数字类型;视频的预览分辨率的width
h: 0, //数字类型;视频的预览分辨率的height
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setVideoSize();
iOS系统
可提供的1.0.0及更高版本
视频编辑时设置原音(前景)和混音(背景)音量。
setVolume({params})
volume:
bgVolume:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.setVolume();
iOS系统,Android系统
可提供的1.0.0及更高版本
视频编辑时获取原视频的音量。
getVolume(callback(ret))
ret:
{
volume :0 //数字类型;音量
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVolume(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
视频编辑时开启水印。
editorSetWaterMark({params})
origin:
{
x: 0, //(可选项)数字类型;水印图片位置左上角的 x 坐标(相对于视频编辑预览视图);默认值:0
y: 0, //(可选项)数字类型;水印图片位置左上角的 y 坐标(相对于视频编辑预览视图);默认值:0
}
path:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorSetWaterMark({
path : 'widget://res/qiniu_logo.png',
origin : {
x : 10,
y : 10
}
});
iOS系统
可提供的1.0.0及更高版本
视频编辑时移除水印。
editorClearWaterMark()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorClearWaterMark();
iOS系统
可提供的1.0.0及更高版本
视频编辑时添加背景音乐。
addMusic({params})
timeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
musicPath:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addMusic({
musicPath : 'widget://res/haha.mp3',
});
iOS系统,Android系统
可提供的1.0.0及更高版本
视频编辑时更新背景音乐。
updateMusic({params})
timeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
volume:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.updateMusic();
iOS系统
可提供的1.0.0及更高版本
视频编辑时获取背景音乐的音量。
getMusicVolume(callback(ret))
ret:
{
musicVolume :0 //数字类型;音量
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getMusicVolume(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
视频编辑时添加 MV 图层。
addMVLayer({params})
colorPath:
alphaPath:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.addMVLayer();
iOS系统,Android系统
可提供的1.0.0及更高版本
视频编辑时添加滤镜。
editorAddFilter({params})
colorImagePath:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.editorAddFilter();
iOS系统,Android系统
可提供的1.0.0及更高版本
视频编辑时替换当前编辑的视频。
replaceCurrentAsset({params})
timeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
path:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.replaceCurrentAsset({
path : 'widget://res/haha.mp4',
});
iOS系统
可提供的1.0.0及更高版本
保存编辑的视频。
saveVideo(callback(ret))
ret:
status:true //布尔类型;保存状态
filePath:'' //字符串类型;保存路径
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.saveVideo(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
android系统
可提供的1.0.0及更高版本
时光倒流初始化。
configurationReverserEffect({params})
path:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.configurationReverserEffect();
iOS系统
可提供的1.0.0及更高版本
执行时光倒流。
startReversing()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.startReversing();
iOS系统
可提供的1.0.0及更高版本
是否处于执行时光倒流状态。
isReversing(callback(ret))
ret:
{
isReversing : true //布尔类型;是否处于执行时光倒流状态
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.isReversing(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
倍速特效,并显示在实时预览编辑窗口上,必须调用过configurationVideoEditor接口。
scaleAsset({params},callback(ret))
timeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;播放时长,单位:秒
}
path:
rateType:
类型:字符串类型
描述:(可选项)倍数处理的类型
取值范围:
'normal' : 1x;
'slow' : 0.667x;
'topSlow' : 0.5x;
'fast' : 1.5x;
'topFast' : 2x
默认:'normal'
当倍速特效完成并显示在实时预览编辑窗口结束,会来到此回调。此回调只有触发事件,没有回调参数
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.scaleAsset();
iOS系统
可提供的1.0.0及更高版本
视频合成导出。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
assetExport({params})
isExportMovieToPhotosAlbum:
outputFileType:
类型:字符串类型
描述:(可选项)视频导出的文件类型
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
outputVideoSize:
{
w: 0, //数字类型;视频导出的分辨率的width
h: 0, //数字类型;视频导出的分辨率的height
}
colorPath:
alphaPath:
colorImagePath:
path:
rateType:
类型:字符串类型
描述:(可选项)倍速特效,倍数处理的类型
取值范围:
'slow' : 0.667x;
'topSlow' : 0.5x;
'fast' : 1.5x;
'topFast' : 2x
默认:不设置
scaleTimeRange:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;时长,单位:秒
}
movieSettings:
{
startTime: 0, //(可选项)数字类型;开始时间,单位:秒;默认值:0
duration: 10, //(可选项)数字类型;时长,单位:秒;默认值:整段视频
volume: 1, //(可选项)数字类型;音量大小;默认值:1
}
audioSettings:
{
musicPath: '', //(可选项)字符串类型;音乐文件的路径,要求本地路径(widget://、fs://);默认值:不传则不设置背景音乐,没有此字段则以下字段无效
startTime: 0, //(可选项)数字类型;开始时间,单位:秒;默认值:0
duration: 10, //(可选项)数字类型;时长,单位:秒;默认值:整段音乐时长
volume: 1, //(可选项)数字类型;音量大小;默认值:1
name: '', //(可选项)字符串类型;名称;默认值:''
}
waterMarkSettings:
{
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及更高版本
取消视频导出。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
cancelAssetExport()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelAssetExport();
iOS系统
可提供的1.0.0及更高版本
获取视频导出的进度。(android不支持视频合成的功能,视频合成的功能由视频编辑接口来完成)
getAssetExportProgress(callback(ret))
ret:
{
progress : 0.5 //数字类型;进度
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getAssetExportProgress(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
视频转码。(android获取保存结果请添加transcoder监听)
transcoder({params})
path:
isExportMovieToPhotosAlbum:
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:
{
start: 0, //数字类型;开始时间,单位:秒
duration: 10, //数字类型;时长,单位:秒
}
destSize:
{
w: 0, //数字类型;转码后的宽
h: 10, //数字类型;转码后的高
}
destBitrate:
类型:数字类型
描述:(可选项)视频转码后的码率;单位:Kbps;(ios不支持)
默认值:1000
取值范围:
fileName:
reverse :
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.transcoder({
path : ''
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消转码流程。
cancelTranscoding()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelTranscoding();
iOS系统,Android系统
可提供的1.0.0及更高版本
获取视频转码的进度。(android不支持,获取进度请添加transcoder监听)
transcodingProgress(callback(ret))
ret:
{
progress : 0.5 //数字类型;进度
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.transcodingProgress(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
多个视频拼接。
movieCompose({params})
paths:
{
paths : [
'' , //字符串类型;视频文件的路径,要求本地路径(widget://、fs://);默认值:无(android不支持widget)
'' ,
''
]
}
isExportMovieToPhotosAlbum:
outputFileType:
类型:字符串类型
描述:(可选项)视频导出的文件类型;(android只支持mp4)
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoSize:
{
w: 0, //数字类型;分辨率的width
h: 0, //数字类型;分辨率的height
}
sizeLevel :
类型:字符串
描述:拼接后视频的分辨率;(ios不支持)
默认值:480x480
取值范围:
videoFrameRate:
bitrate:
fileName:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.movieCompose({
paths : [
'','',''
]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止视频拼接。
stopComposing()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopComposing();
iOS系统,Android系统
可提供的1.0.0及更高版本
视频帧/图片生成 GIF 动图。
composeGif({params})
images:
{
images : [
'' , //字符串类型;图片的路径,要求本地路径(widget://、fs://);默认值:无
'' ,
''
]
}
gifName:
interval:
isLoop
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.composeGif({
images : [
'','',''
]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消合成 Gif 动图。
cancelComposeGif()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelComposeGif();
iOS系统,Android系统
可提供的1.0.0及更高版本
展示 GIF 图。
loadGif({params})
images:
{
images : [
'' , //字符串类型;图片的路径,要求本地路径(widget://、fs://);默认值:无
'' ,
''
]
}
interval:
rect:
{
x: 0, //(可选项)数字类型;Gif展示视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;Gif展示视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;Gif展示视图的宽度;默认值:图片数组第一张图片的宽度
h: 200 //(可选项)数字类型;Gif展示视图的高度;默认值:图片数组第一张图片的高度
}
repeatCount:
fixedOn:
fixed:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.loadGif({
images : [
'','',''
]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除展示的 GIF 图。
removeGif()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.removeGif();
iOS系统,Android系统
可提供的1.0.0及更高版本
录屏。(由于七牛短视频sdk和引擎的原因,录屏功能android暂不支持)
viewRecorder({params},callback(ret))
maxDuration:
fixedOn:
videoFrameRate:
ret:
{
filePath : '' //字符串类型;录屏文件的路径
totalDuration : '' //数字类型;录屏总时长
}
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.viewRecorder(function(ret)
{
if (ret){ api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统
可提供的1.0.0及更高版本
停止录屏。
stopViewRecorder()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopViewRecorder();
iOS系统
可提供的1.0.0及更高版本
视频上传。
uploadVideoFile({params})
path:
token:
videoKey:
https:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.uploadVideoFile({
path : '',
token : ''
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消上传。
cancelUpload()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelUpload();
iOS系统,Android系统
可提供的1.0.0及更高版本
添加监听。
addEventListener({params},callback(ret))
name:
ret:
{
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) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除监听。
removeEventListener({params})
name:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.removeEventListener(
{
name : 'assetExport',
});
iOS系统,Android系统
可提供的1.0.0及更高版本
清除保存在本地的所有视频文件。(android只是清除本插件生成的视频文件,生成的视频文件都保存在sd卡根目录下面的ShortVideo文件夹中)
clearCache()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.clearCache();
iOS系统,Android系统
可提供的1.0.0及更高版本
打开贴图页面(该功能需要七牛授权)。
已废弃(本接口1.1.4及以上版本将不再支持)
openStickerPanelView({params})
rect:
{
x: 0, //(可选项)数字类型;贴图页面左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)贴图页面左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;贴图页面的宽度;默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;贴图页面的高度;默认值:200
}
fixedOn:
fixed:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.openStickerPanelView({
rect : {
x : 20,
y : 550,
w : 350,
h : 170
},
});
iOS系统
可提供的1.0.3及更高版本
关闭贴图页面。
已废弃(本接口1.1.4及以上版本将不再支持)
closeStickerPanelView()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.closeStickerPanelView();
iOS系统
可提供的1.0.3及更高版本
剪辑视频。
cutVideo(params, callback(ret))
path
begin
end
outPath
mode
isExportMovieToPhotosAlbum:
outputFileType:
类型:字符串类型
描述:(可选项)视频导出的文件类型,android不支持此参数
取值范围:
'mp4' : .mp4;
'mov' : .mov;
默认:'mp4'
outputVideoSize:
{
w: 0, //数字类型;视频导出的分辨率的width
h: 0, //数字类型;视频导出的分辨率的height
}
ret
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){
api.alert({msg: JSON.stringify(ret)})
});
iOS系统,Android系统
可提供的1.0.3及更高版本
取消剪辑视频。
cancelCutVideo()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelCutVideo();
iOS系统,Android系统
可提供的1.0.3及更高版本
获取视频帧。
getVideoFrame(params, callback(ret))
path
outPath
count
keyFrame
width
height:
类型:数字类型,iOS不支持此参数
描述:帧高度
默认值:100
ret
result: //数组类型;返回帧的封面地址和时间,iOS不支持此字段
result的内部字段:
image: //字符串类型;图片地址;,iOS不支持此字段
time: //数字类型;帧时间;单位:毫秒,iOS不支持此字段
image: //字符类型,图片地址,图片地址分多次返回,android不支持此参数
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVideoFrame({path:'fs://123.mp4', outPath:'fs://'}, function(ret){
api.alert({msg: JSON.stringify(ret)})
});
iOS系统,Android系统
可提供的1.0.4及更高版本
通过时间获取视频帧。
getVideoFrameByTime(params, callback(ret))
path
outPath
time:
keyFrame
width
height:
类型:数字类型
描述:帧高度
默认值:0
ret
status: //布尔类型;返回状态
path: //字符串类型;图片地址
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.getVideoFrameByTime({path:'fs://123.mp4', outPath:'fs://', time:1000}, function(ret){
api.alert({msg: JSON.stringify(ret)})
});
Android系统
可提供的1.0.4及更高版本
加载视频草稿(即拍摄了一段视频保存到了草稿箱,在下次拍摄时,可以从草稿箱读取视频继续拍摄或编辑)
insertVideo(params)
path
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.insertVideo({path:'fs://123.mp4'});
iOS系统
可提供的1.1.0及更高版本
微整形。
已废弃(本接口1.1.4及以上版本将不再支持)
microPlastic({params})
key:
eyeSize:大眼
chinSize:下巴
noseSize:瘦鼻
mouthWidth:嘴型
archEyebrow:眉型
eyeDis:眼距
eyeAngle:眼角
jawSize:瘦脸
precent:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.microPlastic({key:'eyeSize','precent':0.6});
iOS系统
可提供的1.1.0及更高版本
取消所有微整形。
已废弃(本接口1.1.4及以上版本将不再支持)
cancelMicroPlastic()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.cancelMicroPlastic();
iOS系统
可提供的1.1.0及更高版本
设置预览屏幕大小和分辨率(注意,录制的时候不可设置)。
previewSize({params})
size:
{
w: 0, //数字类型;预览屏幕宽
h: 0, //数字类型;预览屏幕长
}
videoSize:
{
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及更高版本
图片、GIF 图和视频混排。
imageVideoComposer({params})
medias:
{
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:
{
w: 0, //数字类型;分辨率的width;默认:544
h: 0, //数字类型;分辨率的height;默认:960
}
androidVideoSize:
outputFileType:
类型:字符串类型
描述:(可选项)视频导出的文件类型(仅iOS支持)
取值范围:
'mp4' : .mp4;
'mov' : .mov;
'm4a' : .m4a
默认:'mp4'
videoFrameRate:
bitrate:
isExportMovieToPhotosAlbum:
disableTransition:
transitionDuration:
musicURL:
musicVolume:
movieVolume:
transitionType:
类型:数字类型
描述:(可选项)转场类型。仅当 disableTransition 为 false 的时候,transitionType 才生效(仅iOS支持)
取值范围:
0 : 淡入淡出
1 : 无
默认:0
composerPriorityType:
类型:数字类型
描述:(可选项)拼接策略. 仅当 disableTransition 为 false 的时候,composerPriorityType 才生效
取值范围:
0 : 以拼接之后,单个视频时间段内音视频同步优先,这是默认模式:这种模式的好处是无论拼接多少个文件,总是能保证拼 接后的文件音视频是同步的,不好之处是拼接处可能会有音频的卡顿
1 : 以拼接之后,音视频播放连续性优先:这种模式的好处是无论拼接多少个文件,总是能保证拼接后的文件播放是流畅的, 不好之处是可能引起音视频不同步
2 : 以拼接的文件视频通道长度为准,当参与拼接文件的音频通道时长比视频通道时长长的时候,将多出的音频数据丢弃掉。 当视音频通道时长比视频通道时长短的视频,则将音频通道补齐和视频通道一样长。当一段视频中,音频数据和视频数据时长相 差较大(超过 0.1 秒)时,不建议使用这种模式
3 : 以拼接的文件音频通道长度为准,当参与拼接文件的视频通道时长比音频通道时长长的时候,将多出的视频数据丢弃掉。 当视频通道时长比音频通道时长短的视频,则将视频通道补齐和音频通道一样长。当一段视频中,音频数据和视频数据时长相差 较大(超过 0.1 秒)时,不建议使用这种模式
默认:0
outVideoPath:
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.imageVideoComposer({
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止图片、GIF 图和视频混排。
stopImageVideoComposer()
var qiniuShortVideo = api.require('qiniuShortVideo');
qiniuShortVideo.stopImageVideoComposer();