txLiteAV

setLicence showPreviewView stopCameraPreview pauseRecord stopRecord setVideoBitrate setZoom toggleTorch setRenderRotation setRecordSpeed setMicVolume setWaterMark setSpecialRatio setBeauty setBGM pauseBGM stopBGM getDuration deleteLastPart deleteAllParts joinAllParts setVoiceChangerType previewAtTime pausePlay stopPlay setEditerFilter setEditerVideoBitrate setCut setEditerBGM setEditerBGMLoop setEditerVideoVolume showEditerView removeEditerView

概述

短视频

近年来,短视频行业发展极为迅速,凭借其创意玩法以及新鲜的视频内容成为继直播之后的新风口。为了满足开发者快速创建短视频应用的需求,腾讯云点播推出了短视频一站式解决方案,覆盖了视频生成、上传、处理、分发和播放在内的各个环节,帮助用户以最快速度实现短视频应用的上线。

短视频(UserGeneratedShortVideo)服务:基于快速上传、转码、存储等强大云端能力,集成采集、剪接、特效、分享、播放等客户端组件,再整合腾讯的 IM、社交、用户画像等数据,令开发者可以聚焦于业务本身,轻松制作出基于移动端的短视频内容业务。详情参考 关于短视频

腾讯云短视频 SDK,可配合腾讯云点播服务使用,您需要开通腾讯云点播服务,并购买点播加速资源包精简版、旗舰版-2或旗舰版-3,获得短视频 SDK License为期一年的使用权限。具体信息请查看 ,以及 云点播购买流程

txLiteAV 模块概述

本模块封装了腾讯短视频SDK中的录制、编辑、美颜、特效等功能。使用模块之前请先 。注意该模块只封装了精简版和基础版的 SDK。若长期使用该模块的话,请申请 Licence 为精简版和基础版的。因为不同版本 SDK 需要搭配不同版本的 License 才能使用。

模块使用注意事项:

1.免费申请的 license 有一定的有效期。

2.当您的测试 License 过期了,您需要进入 点播控制台 点击购买正式 License。

3.如需支持后台播放功能请参考 config.xml 配置说明文档里关于 的配置

配置实例如下:

setLicence

设置授权

setLicence({params})

params

licenceURL:

licenceKey:

  • 类型:字符串
  • 描述:(必填项)从腾讯云平台获取的Key。

示例代码

  1. txLiteAV.setLicence({
  2. licenceURL : '',
  3. licenceKey : ''
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

startCameraPreview

开始画面预览

startCameraPreview({params},callback(ret))

params

rect:

  • 类型:JSON对象
  • 描述:(可选项)预览画面的位置及长宽
  1. {
  2. x: 0, //(可选项)数字类型;播放器 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. y: 0, //(可选项)数字类型;播放器 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. w: 320, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);iOS支持'auto';默认值:屏幕宽度
  5. h: 300, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);iOS支持'auto';默认值:屏幕高度
  6. }

videoResolution:

  • 类型:数字类型
  • 描述:(可选项)录制分辨率类型定义,如果设备不支持当前分辨率录制,SDK会默认采取低一级别的分辨率录制
  • 默认:3
  • 取值范围:

    0 : 360P 分辨率

    1 : 540P 分辨率

    2 : 720P 分辨率

    1. 3 : 1080P 分辨率

videoFPS:

  • 类型:数字类型
  • 描述:(可选项)自定义fps 15~30
  • 默认:30

videoBitratePIN:

  • 类型:数字类型
  • 描述:(可选项)自定义码率,建议值:600~12000 (SDK上限不再做限制) ,单位kbps/s,这里需要注意的是,这里设置的码率只是给编码器一个参考值,实际出来视频的码率是会在这个参考值上下波动的
  • 默认:1000

frontCamera:

  • 类型:布尔类型
  • 描述:(可选项)是否是前置摄像头
  • 默认:true

encodeMode:

  • 类型:数字类型
  • 描述:(可选项)编码方式 (默认VBR编码方式,相同码率下能获得更好的画面质量)(仅iOS支持)
  • 默认:1
  • 取值范围:

    0 : CBR 编码方式

    1 : VBR 编码方式

enableBFrame:

  • 类型:布尔类型
  • 描述:(可选项)是否开启B帧 (默认开启,相同码率下能获得更好的画面质量)(仅iOS支持)
  • 默认:true

enableAEC:

  • 类型:布尔类型
  • 描述:(可选项)是否开启回声消除(默认开启),开启回声消除,可以录制人声,BGM,人声+BGM (注意:录制中开启回声消除,BGM的播放模式是手机通话模式,这个模式下系统静音会失效,而视频播放预览走的是媒体播放模式,播放模式的不同会导致录制和预览在相同系统音量下播放声音大小有一定区别),关闭回声消除,可以录制人声、BGM,耳机模式下可以录制人声 + BGM ,外放模式下不能录制人声+BGM
  • 默认:true

GOP:

  • 类型:数字类型
  • 描述:(可选项)关键帧间隔(1 ~10),单位秒
  • 默认:3

audioSampleRate:

  • 类型:数字类型
  • 描述:(可选项)音频采样率
  • 默认:2
  • 取值范围:

    0 : 8000

    1 : 16000

    2 : 32000

    3 : 44100

    4 : 48000

minDuration:

  • 类型:数字类型
  • 描述:(可选项)设置视频录制的最小时长,大于0,单位秒
  • 默认:3

maxDuration:

  • 类型:数字类型
  • 描述:(可选项)设置视频录制的最大时长,建议不超过300,单位秒
  • 默认:60

touchFocus:

  • 类型:布尔类型
  • 描述:(可选项)是否触摸聚焦(仅android支持)
  • 默认:true

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

callback(ret,err)

ret:

  • 类型:JSON 对象
  1. {
  2. result: 0, //数字类型,开始预览结果,0 成功, -1 摄像头尚未关闭 请先调用stopCameraPreview关闭, -2 编码器初始化失败
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.startCameraPreview({
  3. frontCamera : true
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

showPreviewView

显示预览视图

showPreviewView()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.showPreviewView();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

hidePreviewView

隐藏预览视图

hidePreviewView()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.hidePreviewView();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

stopCameraPreview

结束画面预览

stopCameraPreview()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.stopCameraPreview();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

startRecord

开始录制

startRecord({params},callback(ret))

params

videoPath:

  • 类型:字符类型
  • 描述:视频文件输出路径,支持fs、widget (android不支持widget路径)
  • 示例:’fs://video/startRecord.mp4’

coverPath:

  • 类型:字符类型
  • 描述:封面文件输出路径,支持fs、widget(android不支持widget路径)

videoPartsFolder:

  • 类型:字符类型
  • 描述:分片视频存储目录路径,支持fs、widget(android不支持widget路径)
  • 示例:’fs://videos’

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,开始录制结果,
  3. //0 | 成功
  4. //-1 | 正在录制短视频
  5. //-2 | videoRecorder初始化失败
  6. //-3 | 摄像头没有打开
  7. //-4 | 麦克风没有打开
  8. //-5 | licence 验证失败,您可以通过 getLicenceInfo 接口查询licence信息,
  9. //-6 | videoPath 为空
  10. //-7 | coverPath 为空
  11. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.startRecord({
  3. videoPath:'',
  4. coverPath:'',
  5. videoPartsFolder:''
  6. },function(ret){
  7. alert(JSON.stringify(ret));
  8. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

pauseRecord

暂停录制

pauseRecord(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,暂停录制结果;0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.pauseRecord(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

resumeRecord

恢复录制

resumeRecord(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,恢复录制结果;0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.resumeRecord(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

stopRecord

结束录制

stopRecord(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,结束录制结果;0 成功, -1 不存在录制任务, -2 videoRecorder未初始化
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.stopRecord(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setVideoResolution

切换视频录制分辨率,startCamera 之后调用有效,注意:需要在startRecord 之前设置,录制过程中设置无效

setVideoResolution({params})

params

videoResolution:

  • 类型:数字类型
  • 描述:(可选项)视频录制分辨率
  • 默认:2
  • 取值范围:

    0 : 360P 分辨率

    1 : 540P 分辨率

    2 : 720P 分辨率

    3 : 1080P 分辨率

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setVideoResolution({
  3. resolution : 0,
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setVideoBitrate

切换视频录制码率,注意:需要在startRecord 之前设置,录制过程中设置无效

setVideoBitrate({params})

params

videoBitratePIN:

  • 类型:数字类型
  • 描述:(可选项)自定义码率,建议值:600~12000 (SDK上限不再做限制) ,单位kbps/s,这里需要注意的是,这里设置的码率只是给编码器一个参考值,实际出来视频的码率是会在这个参考值上下波动的
  • 默认:1000

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setVideoBitrate({
  3. videoBitratePIN : 1000,
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

getMaxZoom

获取最大焦距(仅android支持)

getMaxZoom({params})

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. maxZoom: , //数字类型,最大焦距
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.getMaxZoom(function(err,ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

Android 系统

可提供的 1.0.0 及更高版本

setZoom

调整焦距,startCamera 之后调用有效,取值范围 1~5 ,当为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头),这里最大值推荐为5,超过5后视频数据会变得模糊不清;android取值范围为 0-getMaxZoom()接口返回值

setZoom({params})

params

zoom:

  • 类型:数字类型
  • 描述:(可选项)焦距,当为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头)
  • 默认:3

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setZoom({
  3. zoom : 3,
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

switchCamera

切换前后摄像头,startCamera 之后调用有效

switchCamera({params},callback(ret))

params

isFront:

  • 类型:布尔
  • 描述:(可选项)true 切换到前置摄像头, false 切换到后置摄像头
  • 默认:false

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,切换结果
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.switchCamera({
  3. isFront : false,
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

toggleTorch

打开/关闭闪光灯,startCamera 之后调用有效

toggleTorch({params},callback(ret))

params

isOpen:

  • 类型:布尔
  • 描述:(可选项)是否打开闪光灯,true 打开,false 关闭
  • 默认:true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,切换结果
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.toggleTorch({
  3. isOpen : true,
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setHomeOrientation

设置横竖屏录制,设置后可能会改变视频预览的方向,请调用setRenderRotation 来修本地视预览频流方向, 需要在startRecord 之前设置,录制过程中设置无效

setHomeOrientation({params})

params

orientation:

  • 类型:数字类型
  • 描述:(可选项)横竖屏录制方向
  • 默认:1
  • 取值范围:

    0 : home在右边横屏录制

    1 : home在下面竖屏录制

    2 : home在左边横屏录制

    3 : home在上面竖屏录制

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setHomeOrientation({
  3. orientation : 1
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setRenderRotation

设置预览视频方向

setRenderRotation({params})

params

renderRotation:

  • 类型:数字类型
  • 描述:(可选项)预览视频方向,取值为 0 , 90, 180, 270(其他值无效)
  • 默认:0

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setRenderRotation({
  3. renderRotation : 0
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setAspectRatio

设置视频录制比例,需要在startRecord 之前设置,录制过程中设置无效

setAspectRatio({params})

params

videoRatio:

  • 类型:数字类型
  • 描述:(可选项)横竖屏录制方向
  • 默认:1
  • 取值范围:

    0 : 3:4

    1 : 9:16

    2 : 1:1

    3 : 16:9

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setAspectRatio({
  3. videoRatio : 0
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setRecordSpeed

设置录制速率 [精简版不支持]

setRecordSpeed({params})

params

speed:

  • 类型:数字类型
  • 描述:(可选项)录制速率
  • 默认:1

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setRecordSpeed({
  3. speed : 1
  4. });

可用性

可提供的 1.0.0 及更高版本

setMute

置是否静音录制

setMute({params})

params

isMute:

  • 类型:布尔类型
  • 描述:(可选项)是否静音录制
  • 默认:true

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setMute({
  3. isMute : true
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setMicVolume

设置麦克风的音量大小,播放背景音乐混音时使用,用来控制麦克风音量大小 [精简版不支持],注意:这个接口目前在playBGM之后才生效

setMicVolume({params},callback(ret))

params

volume:

  • 类型:数字类型
  • 描述:(可选项)音量大小,1为正常音量,建议值为0~2,如果需要调大音量可以设置更大的值
  • 默认:1

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,设置麦克风音量结果
  3. }

示例代码

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

snapshot

截图/拍照,startCamera 之后调用有效 [精简版不支持]

snapshot(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,接口调用结果,注意,这个返回值为接口调用结果,不与imagePath一起返回(仅iOS支持)
  3. imagePath:'' //字符串路径,图片储存路径
  4. }
  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.snapshot(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setWaterMark

设置全局水印 [精简版不支持]

setWaterMark({params})

params

image:

  • 类型:字符串类型
  • 描述: 全局水印图片路径,支持fs、widget

rect:

  • 类型:JSON对象
  • 描述:(可选项)水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1;height不用设置,sdk内部会根据水印宽高比自动计算height;比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 0.1,960 0.1,540 0.1 ,540 0.1 * waterMark.size.height / waterMark.size.width)
  1. {
  2. x: 0.1, //(可选项)数字类型;播放器 x 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  3. y: 0.1, //(可选项)数字类型;播放器 y 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  4. w: 0.1, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);默认值:0.1
  5. h: 0, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);支持'auto';默认值:0
  6. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setWaterMark({
  3. image :'',
  4. x: 0.1,
  5. y: 0.1,
  6. w: 0.1,
  7. h: 0,
  8. }
  9. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setFilter

设置指定素材滤镜特效

setFilter({params})

params

image:

  • 类型:字符串类型
  • 描述: 指定素材,即颜色查找表图片路径。注意:一定要用png格式;支持fs、widget

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setFilter({
  3. image :''
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setSpecialRatio

设置滤镜效果程度

setSpecialRatio({params})

params

specialRatio:

  • 类型:数字类型
  • 描述: (可选项)滤镜效果程度,从0到1,越大滤镜效果越明显
  • 默认:0.5

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setSpecialRatio({
  3. specialRatio :0.5
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setCombinationFilter

设置两个滤镜效果 [精简版不支持]

setCombinationFilter({params})

params

leftFilter:

  • 类型:字符串类型
  • 描述: 左滤镜图片路径,支持fs、widget

leftIntensity:

  • 类型:数字类型
  • 描述: 左滤镜浓度

rightFilter:

  • 类型:字符串类型
  • 描述: 右滤镜图片路径,支持fs、widget

rightIntensity:

  • 类型:数字类型
  • 描述: 右滤镜浓度

leftRatio:

  • 类型:数字类型
  • 描述: 左滤镜所占比例

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setCombinationFilter({
  3. leftFilter :,
  4. leftIntensity :,
  5. rightFilter :,
  6. rightIntensity :,
  7. leftRatio :,
  8. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setBeauty

设置美颜 和 美白 效果级别

setBeauty({params})

params

beautyStyle:

  • 类型:数字类型
  • 描述:(可选项)美颜风格
  • 默认:0
  • 取值范围:

    0 : 光滑

    1 : 自然

    2 : pitu美颜

beautyLevel:

  • 类型:数字类型
  • 描述: 美颜级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显
  • 默认:5

whitenessLevel:

  • 类型:数字类型
  • 描述: 美白级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显
  • 默认:5

ruddinessLevel:

  • 类型:数字类型
  • 描述:红润级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显
  • 默认:5

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setBeauty({
  3. beautyStyle : 1
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

addRecordListener

添加录制监听

addRecordListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. milliSecond: 6, //数字类型,以毫秒为单位的播放的时间,此返回值不会和retCode、descMsg、videoPath、coverImagePath同时返回
  3. retCode:0, //数字类型,录制结果
  4. //取值如下:
  5. //0:录制成功(业务层主动结束录制),会生成最终视频
  6. //1:录制成功(因为进后台,或则闹钟,电话打断等自动结束录制),会生成最终视频
  7. //2:录制成功(录制时长未达到设置的最小时长),会生成最终视频
  8. //3:录制成功(录制时长超过设置的最大时长),会生成最终视频
  9. //1001:录制失败,不会生成最终视频
  10. descMsg:'', //字符串类型;错误描述信息
  11. videoPath:'', //字符串类型;视频文件path
  12. coverImagePath:'' //字符串类型;视频封面图片路径
  13. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.addRecordListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setBGM

设置背景音乐文件 [精简版不支持]

setBGM({params},callback(ret))

params

path:

  • 类型:字符串类型
  • 描述:音乐文件路径,iOS一定要是app对应的document目录下面的路径,否则文件会读取失败; android 支持原生路径、fs路径

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. length:6 //数字路径, 音乐时长 s (返回值为0,表示BGM格式不支持或则音频解析失败)
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setBGM({
  3. path : ''
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

playBGM

播放背景音乐 [精简版不支持],必须在startCamera之后调用

playBGM({params},callback(ret))

params

startTime:

  • 类型:数字类型
  • 描述:(可选项)音乐播放起始时间
  • 默认:0

endTime:

  • 类型:数字类型
  • 描述:(可选项)音乐播放结束时间
  • 默认:6

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:, //布尔类型;是否播放成功(仅android支持)
  3. state:'', //字符类型;播放状态(仅iOS支持)
  4. //取值如下:
  5. //begin:音乐播放开始
  6. //underway:音乐播放中
  7. //end:音乐播放结束
  8. errCode:0, //数字类型;错误码;state = begin、end时返回
  9. progress:0, //数字类型;播放了多少,单位毫秒;state = underway时返回
  10. duration:0, //数字类型;总时长,,单位毫秒单位毫秒;state = underway时返回
  11. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.playBGM({
  3. startTime : 0,
  4. endTime:6
  5. },function(ret){
  6. alert(JSON.stringify(ret));
  7. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

pauseBGM

暂停播放背景音乐 [精简版不支持]

pauseBGM(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,暂停播放背景音乐结果
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.pauseBGM(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

resumeBGM

继续播放背景音乐 [精简版不支持]

resumeBGM(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,继续播放背景音乐结果
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.resumeBGM(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

stopBGM

停止播放背景音乐 [精简版不支持]

stopBGM(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. status: true, //布尔类型,停止播放背景音乐结果
  2. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.stopBGM(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setBGMVolume

设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小 [精简版不支持],这个接口目前在playBGM之后才生效

setBGMVolume({params},callback(ret))

params

volume:

  • 类型:数字类型
  • 描述:(可选项)音量大小,1为正常音量,建议值为0~2,如果需要调大背景音量可以设置更大的值
  • 默认:1

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型,设置背景音乐结果
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setBGMVolume({
  3. volume : 1
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

getDuration

获取当前录制视频片段的总时长 单位:s

getDuration(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. duration:6 //数字类型, 当前录制视频片段的总时长 单位:s
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.getDuration(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

getVideoPathList

获取当前录制所有视频片段路径

getVideoPathList(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. videoPaths:[''] //字符串数组, 当前录制所有视频片段路径数组
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.getVideoPathList(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

deleteLastPart

删除当前录制视频最后一片段,默认删除本地视频文件

deleteLastPart()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.deleteLastPart();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

deletePart

删除当前录制视频指定片段,默认删除本地视频文件

deletePart({params})

params

index:

  • 类型:数字类型
  • 描述:(可选项)删除录制视频的位置
  • 默认:0

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.deletePart({
  3. index : 0
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

deleteAllParts

删除当前录制视频所有片段,默认删除本地视频文件

deleteAllParts()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.deleteAllParts();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

insertPart

您可以添加当前录制视频之外的视频,调用合joinAllParts的时候,SDK会把所有的视频合成(这里添加的视频需要和录制视频的分辨率保持一致,否则会合成失败)

insertPart({params})

params

videoPath:

  • 类型:字符串类型
  • 描述:添加视频的文件路径

index:

  • 类型:数字类型
  • 描述:(可选项)添加视频的所在整个视频list的位置
  • 默认:0

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.insertPart({
  3. videoPath : '',
  4. volume : 0
  5. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

joinAllParts

合成所有片段,iOS合成所有当前录制视频,android合成insertPart接口添加的片段视频(这里需要保证视频片段的分辨率一致,否则会合成失败)

joinAllParts({params}),callback(ret))

params

videoOutputPath:

  • 类型:字符串类型
  • 描述:合成后视频文件存放地址;支持原生路径和fs路径
  • 示例:’fs://join.mp4’

videoResolution:

  • 类型:数字类型
  • 描述:合成类型视频分辨率(仅android支持)
  • 取值范围: 0 /360P 分辨率、1/480P 分辨率、2/540P 分辨率,3 : 720P 分辨率
  • 默认:1

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,0:成功 -1:失败
  3. progress:, //小数类型;合成进度,与result不一起返回(仅android有效)
  4. }

示例代码

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setReverbType

设置混响效果 [精简版不支持]

setReverbType({params})

params

reverbType:

  • 类型:数字类型
  • 描述:(可选项)变声类型
  • 默认:0
  • 取值范围:

    0 : 关闭混响

    1 : KTV

    2 : 小房间

    3 : 大会堂

    4 : 低沉

    5 : 洪亮

    6 : 金属声

    7 : 磁性

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setReverbType({
  3. reverbType : 0
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setVoiceChangerType

变声 [精简版不支持]

setVoiceChangerType({params})

params

voiceChangerType:

  • 类型:数字类型
  • 描述:(可选项)设置变声类型 [精简版不支持]
  • 默认:0
  • 取值范围:

    0 : 关闭变声

    1 : 熊孩子

    2 : 萝莉

    3 : 大叔

    5 : 感冒

    6 : 外国人

    7 : 困兽

    8 : 死肥仔

    9 : 强电流

    10 : 重机械

    11 : 空灵

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setVoiceChangerType({
  3. voiceChangerType : 0
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

startEditerPreview

打开编辑预览页面

startEditerPreview({params},callback(ret))

rect:

  • 类型:JSON对象
  • 描述:(可选项)预览画面的位置及长宽
  1. {
  2. y: 0, //(可选项)数字类型;编辑页面 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. w: 320, //(可选项)数字类型;编辑页面宽(相对于所属的 Window 或 Frame);iOS支持'auto';默认值:屏幕宽度
  4. h: 300, //(可选项)数字类型;编辑页面高(相对于所属的 Window 或 Frame);iOS支持'auto';默认值:屏幕高度
  5. }

videoPath:

  • 类型:字符串类型
  • 描述:视频路径,支持fs、widget(android不支持widget)

renderMode:

  • 类型:数字类型
  • 描述:(可选项)填充模式
  • 默认:1
  • 取值范围:

    0 : 填充模式,尽可能充满屏幕不留黑边,所以可能会裁剪掉一部分画面

    1 : 黑边模式,尽可能保持画面完整,但当宽高比不合适时会有黑边出现

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.startEditerPreview({
  3. videoPath :''
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

previewAtTime

渲染某一时刻的视频画面(编辑预览页面有效),需要在预加载成功后,且停止播放后有效

previewAtTime({params})

params

time:

  • 类型:数字类型
  • 描述:(可选项)预览帧时间(s)
  • 默认:6

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.previewAtTime({
  3. time : 6
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

startPlayFromTime

播放某一时间段的视频(编辑预览页面有效)

startPlayFromTime({params})

params

startTime:

  • 类型:数字类型
  • 描述:(可选项)播放起始时间(s)
  • 默认:0

endTime:

  • 类型:数字类型
  • 描述:(可选项)播放结束时间(s)
  • 默认:6

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.startPlayFromTime({
  3. startTime : 0,
  4. endTime : 6
  5. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

pausePlay

暂停播放(编辑预览页面有效)

pausePlay()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.pausePlay();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

resumePlay

继续播放(编辑预览页面有效)

resumePlay()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.resumePlay();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

stopPlay

停止播放(编辑预览页面有效)

stopPlay()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.stopPlay();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerWaterMark

设置编辑页面全局水印[精简版不支持](编辑预览页面有效)

setEditerWaterMark({params})

params

image:

  • 类型:字符串类型
  • 描述: 全局水印图片路径,支持fs、widget

rect:

  • 类型:JSON对象
  • 描述:(可选项)水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1;height不用设置,sdk内部会根据水印宽高比自动计算height;比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 0.1,960 0.1,540 0.1 ,540 0.1 * waterMark.size.height / waterMark.size.width)
  1. {
  2. x: 0.1, //(可选项)数字类型;播放器 x 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  3. y: 0.1, //(可选项)数字类型;播放器 y 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  4. w: 0.1, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);默认值:0.1
  5. h: 0, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);支持'auto';默认值:0
  6. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerWaterMark({
  3. image :'',
  4. rect:{
  5. x: 0.1,
  6. y: 0.1,
  7. w: 0.1,
  8. h: 0,
  9. }
  10. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerFilter

设置指定素材滤镜特效(编辑预览页面有效)

setEditerFilter({params})

params

image:

  • 类型:字符串类型
  • 描述: 指定素材,即颜色查找表图片路径。注意:一定要用png格式;支持fs、widget

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerFilter({
  3. image :''
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setTailWaterMark

设置片尾水印 [精简版不支持](编辑预览页面有效)

setTailWaterMark({params})

params

image:

  • 类型:字符串类型
  • 描述: 全局水印图片路径,支持fs、widget

rect:

  • 类型:JSON对象
  • 描述:(可选项)水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1;height不用设置,sdk内部会根据水印宽高比自动计算height;比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 0.1,960 0.1,540 0.1 ,540 0.1*waterMark.size.height / waterMark.size.width)
  1. {
  2. x: 0.1, //(可选项)数字类型;播放器 x 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  3. y: 0.1, //(可选项)数字类型;播放器 y 坐标(相对于所属的 Window 或 Frame);默认值:0.1
  4. w: 0.1, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);默认值:0.1
  5. h: 0, //(可选项)数字类型;播放器(相对于所属的 Window 或 Frame);支持'auto';默认值:0
  6. }

duration:

  • 类型:数字类型
  • 描述:(可选项)水印的持续时长
  • 默认:3

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setTailWaterMark({
  3. image :'',
  4. rect:{
  5. x: 0.1,
  6. y: 0.1,
  7. w: 0.1,
  8. h: 0,
  9. }
  10. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerVideoBitrate

设置视频码率(编辑预览页面有效)

setEditerVideoBitrate({params})

params

bitrate:

  • 类型:数字类型
  • 描述:(可选项)视频码率 单位:kbps,如果设置了码率,SDK生成视频会优先使用这个码率,注意码率不要太大或则太小,码率太小视频会模糊不清,码率太大,生成视频体积会很大, 这里建议设置范围为:600~12000,如果没有调用这个接口,SDK内部会根据压缩质量自动计算码率
  • 默认:1000

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerVideoBitrate({
  3. bitrate : 1000
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

getSampleImages

获取视频缩略图列表

getSampleImages({params},callback(ret))

params

path:

  • 类型:字符串类型
  • 描述:源视频文件路径,支持fs,widget(仅iOS支持,android截取正在预览视频缩略图)

outPath:

  • 类型:字符串类型
  • 描述:图片保存路径,路径下不可跟图片名称,支持fs,widget(android不支持widget)
  • 示例:fs://

count:

  • 类型:数字类型
  • 描述:(可选项)获取的采样图数量(均匀采样)
  • 默认值:10

width:

  • 类型:数字类型
  • 描述:(可选项)缩略图的最大宽,生成的缩略图大小不会超出这个宽
  • 默认值:100

height:

  • 类型:数字类型
  • 描述:(可选项)缩略图的最大高,生成的缩略图大小不会超出这个高
  • 默认值:100

fast:

  • 类型:布尔类型
  • 描述:是否精准出图;精准出图:输出的缩略图与视频时间点精准对应,但是在高分辨率上速度慢一些
  • 默认:false

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. number: 0, //数字类型,当前采样的是第几张图片
  3. path:'' //字符类型,当前采样图片文件路径
  4. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.getSampleImages({
  3. path : '',
  4. outPath:''
  5. },function(ret){
  6. alert(JSON.stringify(ret));
  7. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setCut

设置视频剪裁(编辑预览页面有效)

setCut({params})

params

startTime:

  • 类型:数字类型
  • 描述:(可选项)视频起始时间
  • 默认:0

endTime:

  • 类型:数字类型
  • 描述:(可选项)视频结束时间)
  • 默认:6

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setCut({
  3. startTime : 0,
  4. endTime : 6
  5. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

generateVideo

生成视频

generateVideo({params})

params

outPath:

  • 类型:字符串类型
  • 描述:视频保存路径,支持fs,widget(android不支持widget)
  • 示例:fs://video.mp4

videoCompressed:

  • 类型:数字类型
  • 描述:(可选项)视频压缩质量,注意如果视频的分辨率小于压缩到的目标分辨率,视频不会被压缩,会保留原画
  • 默认值:3
  • 取值范围:

    0 : 压缩至360P分辨率

    1 : 压缩至480P分辨率

    2 : 压缩至540P分辨率

    3 : 压缩至720P分辨率

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.generateVideo({
  3. outPath : '',
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

addVideoGenerateListener

添加生成视频事件监听

addVideoGenerateListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. progress: 0, //数字类型,短视频生成进度,此返回值不会和result同时返回
  3. result:{ //json对象,录制结果,,此返回值不会和progress同时返回
  4. retCode:0 //数字类型;错误码
  5. //取值如下:
  6. //0:生成视频成功
  7. //-1:生成视频失败
  8. //-2:生成视频取消
  9. //-5:licence 验证失败
  10. descMsg:'' //错误描述信息
  11. },
  12. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.addVideoGenerateListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerBGM

设置背景音乐 [精简版不支持](编辑预览页面有效)

setEditerBGM({params},callback(ret))

params

path:

  • 类型:字符串
  • 描述:音乐文件路径,支付fs、widget(android不支持widget)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. result: 0, //数字类型,设置背景音乐结果,0:成功, -1:音乐文件格式不支持
  3. }

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerBGM({
  3. path : ''
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerBGMTime

设置背景音乐的起始时间和结束时间 [精简版不支持](编辑预览页面有效)

setEditerBGMTime({params})

params

startTime:

  • 类型:数字类型
  • 描述:(可选项)音乐起始时间
  • 默认:0

endTime:

  • 类型:数字类型
  • 描述:(可选项)音乐结束时间
  • 默认:6

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerBGMTime({
  3. startTime : 0,
  4. endTime : 6
  5. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerBGMLoop

设置背景音乐是否循环播放 [精简版不支持](编辑预览页面有效)

setEditerBGMLoop({params})

params

isLoop:

  • 类型:布尔类型
  • 描述:(可选项)是否循环播放
  • 默认:true

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerBGMLoop({
  3. isLoop : true
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerBGMAtVideoTime

设置背景音乐在视频的添加的起始位置 [精简版不支持](编辑预览页面有效)

setEditerBGMAtVideoTime({params})

params

time:

  • 类型:数字类型
  • 描述:(可选项)背景音乐在视频的添加的起始时间
  • 默认:0

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerBGMAtVideoTime({
  3. time : 6
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerVideoVolume

设置视频声音大小 [精简版不支持](编辑预览页面有效)

setEditerVideoVolume({params})

params

volume:

  • 类型:数字类型
  • 描述:(可选项)背景音量, 取值范围 0.0 ~ 1.0
  • 默认:0.5

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerVideoVolume({
  3. volume : 6
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

setEditerBGMVolume

设置背景音乐声音大小 [精简版不支持](编辑预览页面有效)

setEditerBGMVolume({params})

params

volume:

  • 类型:数字类型
  • 描述:(可选项)背景音量, 取值范围 0.0 ~ 1.0
  • 默认:0.5

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.setEditerBGMVolume({
  3. volume : 6
  4. });

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

showEditerView

显示编辑视图

showEditerView()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.showEditerView();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

hideEditerView

隐藏编辑视图

hideEditerView()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.hideEditerView();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

removeEditerView

移除编辑视图

removeEditerView()

示例代码

  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.removeEditerView();

可用性

iOS、Android 系统

可提供的 1.0.0 及更高版本

processVideo

全功能预加载

processVideo()

params

thumbnailCount:

  • 类型:数字类型
  • 描述:生成缩略图个数
  • 默认:10

thumbnailWidth:

  • 类型:数字类型
  • 描述:(可选项)缩略图宽

thumbnailHeight:

  • 类型:数字类型
  • 描述:(可选项)缩略图高

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. var txLiteAV = api.require('txLiteAV');
  2. txLiteAV.processVideo({
  3. thumbnailCount:10,
  4. },function(ret,err){
  5. });

可用性

iOS、Android 系统