qiniuRTC
以下为Android端美颜接口,与ios存在差异
概述
qiniuRTC模块封装了七牛实时音视频sdk,七牛实时音视频是七牛推出的一款适用于 Android 平台的音视频通话 SDK,提供了包括美颜、滤镜、音视频通话等多种功能,提供灵活的接口,支持高度定制以及二次开发,您可以很方便地在 Android 平台上开发出一款基于实时音视频的应用。其中包括但不限于以下场景:
- 在线教育
- 在线直播互动连麦
- 视频会议
- 一对一社交
- 狼人杀等依赖实时音视频通话的游戏
- 在线客服
- 在线抓娃娃
注意事项: 云编译界面 右上角高级设置里 Android 固件版本选5.0以上。
模块接口
init
初始化 SDK 及 RTC 引擎
init(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型,是否初始化成功
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.init(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
enableFileLogging 该方法仅支持ios
开启文件日志。为了不错过日志,建议在 App 启动时即开启,iOS端日志文件位于 App Container/Library/Caches/Pili/Logs 目录下以 QNRTC+当前时间命名的目录内。
注意:文件日志功能主要用于排查问题,打开文件日志功能会对性能有一定影响,上线前请记得关闭文件日志功能!
enableFileLogging()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.enableFileLogging( );
可用性
iOS 系统
可提供的 1.0.0 及更高版本
renderVideoFrame
创建本地预览窗口或远端视频窗口 注意:渲染远端窗口时需要在订阅事件(即addSubscribeListener)中操作
renderVideoFrame({params},callback(ret))
Params
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;窗口左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;窗口左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:300, //(可选项)数字类型;窗口宽度(相对于所属的 Window 或 Frame;默认300
h:600 //(可选项)数字类型;窗口高度(相对于所属的 Window 或 Frame;默认300
}
videoWidth:
- 类型:数字
- 描述:采集视频的宽度
- 默认:640
videoHeight:
- 类型:数字
- 描述:采集视频的高度
- 默认:480
frameRate:
- 类型:数字
- 描述:视频帧率
- 默认:15
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
userId:
- 类型:字符串
- 描述:要显示的视频窗口的userID,若不传或传空则表示本地预览视频窗口
fillMode:
- 类型:字符串
- 描述:填充模式
- 默认:ratioAndFill
- 取值范围:
- ratioAndFill:Maintains the aspect ratio of the source image, zooming in on its center to fill the view
- ratio: Maintains the aspect ratio of the source image, adding bars of the specified background color
- stretch:Stretch to fill the full view, which may distort the image outside of its normal aspect ratio
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型,是否初始化成功
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.renderVideoFrame({
rect:{
x:0,
y:0,
w:300,
h:300
},
userId:'',
fillMode:'ratio',
fixedOn:api.frameName,
fixed:true
},function(ret){
if(ret.status) {
qiniuRTC.startCapture();
} else {
api.alert({msg:JSON.stringify(ret)})
}
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
closeVideoFrame
移除窗口
closeVideoFrame({params})
Params
userId:
- 类型:字符串
- 描述:要显示的视频窗口的userID,若不传或传空则表示本地预览视频窗口
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.closeVideoFrame({
userId:''
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
resetVideoFrame
重设窗口位置及大小
resetVideoFrame({params})
Params
userId:
- 类型:字符串
- 描述:要显示的视频窗口的userID,若不传或传空则表示本地预览视频窗口
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;窗口左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;窗口左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:300, //(可选项)数字类型;窗口宽度(相对于所属的 Window 或 Frame;默认300
h:600 //(可选项)数字类型;窗口高度(相对于所属的 Window 或 Frame;默认300
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.resetVideoFrame({
userId:'',
rect:{
x:0,
y:0,
w:300,
h:300
}
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startCapture
开启摄像头采集。打开本地预览时,开启采集才会显示。
startCapture()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.startCapture( );
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型,采集数据是否成功
}
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopCapture
关闭摄像头采集
stopCapture()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.stopCapture( );
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
toggleCamera
切换前后摄像头。
toggleCamera()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.toggleCamera( );
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setFillMode
设置视频填充模式
setFillMode({params})
Params
userId:
- 类型:字符串
- 描述:要显示的视频窗口的userID,若不传或传空则表示本地预览视频窗口
fillMode:
- 类型:字符串
- 描述:填充模式
- 默认:ratioAndFill
- 取值范围:
- ratioAndFill:Maintains the aspect ratio of the source image, zooming in on its center to fill the view
- ratio: Maintains the aspect ratio of the source image, adding bars of the specified background color
- stretch:Stretch to fill the full view, which may distort the image outside of its normal aspect ratio
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setFillMode({
userId:'',
fillMode:'ratio'
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
setSessionPreset
设置视频填充模式
setSessionPreset({params},callback(ret))
Params
sessionPreset:
- 类型:字符串
- 描述:采集的视频的 sessionPreset
- 默认:'640*480'
- 取值范围:
- '640*480'
- '1280*720'
- '1920x1080'
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setSessionPreset({
sessionPreset:'640*480'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVideoFrameRate
设置采集的视频数据的帧率
setVideoFrameRate({params})
Params
rate:
- 类型:数字
- 描述:采集的视频数据的帧率
- 默认:24
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setVideoFrameRate({
rate:30
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setPreviewMirrorRearFacing
后置摄像头,预览是否开启镜像
setPreviewMirrorRearFacing({params}))
Params
mirror:
- 类型:布尔
- 描述:是否镜像
- 默认:false
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setPreviewMirrorRearFacing({
mirror:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setEncodeMirrorRearFacing
后置摄像头,对方观看时是否开启镜像
setEncodeMirrorRearFacing({params})
Params
mirror:
- 类型:布尔
- 描述:是否镜像
- 默认:false
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setEncodeMirrorRearFacing({
mirror:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setEncodeMirrorFrontFacing
前置摄像头,对方观看时是否开启镜像
setEncodeMirrorFrontFacing({params},callback(ret))
Params
mirror:
- 类型:布尔
- 描述:是否镜像
- 默认:false
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setEncodeMirrorFrontFacing({
mirror:true
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
setContinuousAutofocusEnable
连续自动对焦
setContinuousAutofocusEnable({params})
Params
enable:
- 类型:布尔
- 描述:是否
- 默认:true
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setContinuousAutofocusEnable({
enable:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setTouchToFocusEnable
手动点击屏幕进行对焦
setTouchToFocusEnable({params},callback(ret))
Params
enalbe:
- 类型:布尔
- 描述:是否
- 默认:true
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setTouchToFocusEnable({
enable:true
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
setBeautify
设置美颜
setBeautify({params},callback(ret))
Params
beautify:
- 类型:布尔
- 描述:是否开启,若为false,后面三个参数无效
- 默认:true
setBeautify:
- 类型:数字
- 描述:设置美颜程度,范围是从0 ~ 1,0为不美颜(如果美颜不开启,该参数无效)
- 默认:0
setWhiten:
- 类型:数字
- 描述:设置美白程度,范围是从0 ~ 1,0为不美白(如果美颜不开启,该参数无效)
- 默认:0
setRedden:
- 类型:数字
- 描述:设置红润程度,范围是从0 ~ 1,0为不红润(如果美颜不开启,该参数无效)
- 默认:0
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setBeautify({
beautify:true,
setBeautify:1,
setWhiten:1,
setRedden:1
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMuteSpeaker
是否静音远端的声音
setMuteSpeaker({params},callback(ret))
Params
mute:
- 类型:布尔
- 描述:设置为 true 后,本地不会输出远端用户的声音。
- 默认:true
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setMuteSpeaker({
mute:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
checkAndRequestCamera
检查获取摄像头权限
checkAndRequestCamera(callback(ret))
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
granted: true //布尔类型;是否获取权限
status: 1 //数字类型;状态码
//0还没有确定是否授权
//1设备受限
//2拒绝授权
//3已授权
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.checkAndRequestCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
checkAndRequestMicrophone
检查获取麦克风权限
checkAndRequestMicrophone(callback(ret))
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
granted: true //布尔类型;是否获取权限
status: 1 //数字类型;状态码
//0还没有确定是否授权
//1设备受限
//2拒绝授权
//3已授权
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.checkAndRequestMicrophone(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
publish
发布本地的音视频到服务器。
需要加入房间成功后且不处于重连状态才可以发布音视频。
publish()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.publish();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
publishAudio
发布本地的音频到服务器。
需要加入房间成功后且不处于重连状态才可以发布音频。
publishAudio()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.publishAudio();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
publishVideo
发布本地的视频到服务器。
需要加入房间成功后且不处于重连状态才可以发布视频。
publishVideo()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.publishVideo();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
muteAudio
将本地音频置为 muted 状态。
muteAudio({params},callback(ret))
Params
mute:
- 类型:布尔
- 描述:需要发布成功后才可以执行 mute 操作
- 默认:true
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.muteAudio({
mute:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
muteVideo
将本地视频置为 muted 状态。
muteVideo({params},callback(ret))
Params
mute:
- 类型:布尔
- 描述:需要发布成功后才可以执行 mute 操作
- 默认:true
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.muteVideo({
mute:true
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
unpublish
取消发布本地的音视频到服务器。
unpublish()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.unpublish();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
unpublishAudio
取消发布本地的音频到服务器。
unpublishAudio()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.unpublishAudio();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
unpublishVideo
取消发布本地的视频到服务器。
unpublishVideo()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.unpublishVideo();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
sendMessage
发送消息给 users 数组中的所有 userId
sendMessage({params})
Params
message:
- 类型:字符串
- 描述:消息
messageId:
- 类型:字符串
- 描述:消息ID
users:
- 类型:数组
- 描述:发送的用户id组成的数组,不传表示给所有人发
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.sendMessage({
message:'',
messageId:'ratio',
users:['','',]
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
sendMessage
发送消息给 users 数组中的所有 userId
sendMessage({params})
Params
message:
- 类型:字符串
- 描述:消息
messageId:
- 类型:字符串
- 描述:消息ID
users:
- 类型:数组
- 描述:发送的用户id组成的数组,不传表示给所有人发
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.sendMessage({
message:'',
messageId:'ratio',
users:['','',]
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addMessageListener
添加消息监听
addMessageListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
identifier:'', //字符串类型;发送消息时传入的消息 id
userId:'', //字符串类型;发送消息的用户的 userId
content:'', //字符串类型;发送的消息内容
timestamp:'' //数字类型;服务器收到消息的时间戳
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addMessageListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
joinRoom
进入房间
joinRoom({params})
Params
token:
- 类型:字符串
- 描述:此处 token 需要 App 从 App Server 中获取,token 中已经包含 appId、roomToken、userId 等信息。
userData:
- 类型:字符串
- 描述:(可选项)可将 userData 传给房间中的其它用户,如无需求可不传。
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.joinRoom({
token:'*************',
userData:'hello'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
leaveRoom
离开房间
leaveRoom({params})
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型,离开房间成功
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.leaveRoom(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
kickoutUser
踢出房间
kickoutUser({params})
Params
userId:
- 类型:字符串
- 描述: 将 userId 的踢出房间。
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.kickoutUser({
userId:'*************'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
createMergeJob
创建合流任务
createMergeJob({params}, callback(ret))
Params
customJobId:
- 类型: 字符串
- 描述: app范围内唯一标识的jobId 可自行生成
publishUrl:
- 类型:字符串
- 描述:房间的推流地址
width:
- 类型:数字
- 描述:合流的宽度
height:
- 类型:数字
- 描述:合流的高度
bitrate:
- 类型:数字
- 描述:比特率
- 默认:1200 * 1000
minBitrate:
- 类型:数字
- 描述:比特率
- 默认:1200 * 1000
maxBitrate:
- 类型:数字
- 描述:比特率
- 默认:1200 * 1000
fps:
- 类型:数字
- 描述:帧率
- 默认:15
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, // 是否创建成功
jobId:'' // 返回jobId
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.createMergeJob({
customJobId:'100',
publishUrl:'rtmp://',
width:300,
height:300
}, function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMergeStreamLayouts
设置合流布局
setMergeStreamLayouts({params})
Params
layouts:
- 类型: JSON数组
- 描述: 布局参数
[{ userId:'' // 用户id,为空设置本用户 x:0, // 在合流中x轴的坐标 y:0, // 在合流中y轴的坐标 w:100, // 在合流中宽度 h:100, // 在合流中高度 zIndex:0 // z-Index (视图的层级) } ]
jobId:
- 类型: 字符串
- 描述: 合流ID
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setMergeStreamLayouts({
layouts:[{
userId:'' // 用户id
x:0, // 在合流中x轴的坐标
y:0, // 在合流中y轴的坐标
w:100, // 在合流中宽度
h:100, // 在合流中高度
zIndex:0 // z-Index (视图的层级)
}]
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopMergeStream
停止合流
Params
jobId:
- 类型:字符串
- 描述:合流任务Id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true // 停止合流成功
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.stopMergeStream({
jobId:'100'
},function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
removeMergeStreamLayouts
取消合流布局
Params
jobId:
- 类型:字符串
- 描述:合流任务Id
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.removeMergeStreamLayouts({
jobId:'100'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addFailListener
运行过程中发生错误的监听
addFailListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg:'' //字符串类型;错误信息
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addFailListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addRemoteUserVideoListener
远端用户视频首帧解码后的回调
addRemoteUserVideoListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userId:'' //字符串类型;用户ID
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addRemoteUserVideoListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addDidJoinListener
远端用户加入房间的监听
addDidJoinListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userId:'' , //字符串类型;用户ID
userData:'' //字符串类型;加入时代的信息
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addDidJoinListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addRoomStateListener
房间状态监听
addRoomStateListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
state:'' //数字类型;状态码
//0:空闲状态,初始状态或者退出房间后都会进入该状态
//1:正在加入房间的状态
//2:已加入房间的状态
//3:正在重连的状态
//4:重连成功的状态
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addRoomStateListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addKickoutListener
自己被踢掉的监听
addKickoutListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userId:'' //字符串类型;踢自己的用户ID
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addKickoutListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addDidLeaveListener
有人离开房间的监听
addDidLeaveListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userId:'' //字符串类型;离开房间的用户ID
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addDidLeaveListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addSubscribeListener
订阅事件
addSubscribeListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userId:'' //字符串类型;离开房间的用户ID
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addSubscribeListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
推流相关事件
addEventListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType:'', //字符串类型;事件类型
userId:''
}
eventType 取值如下:
LocalPublished 本地发布
- RemotePublished 远程发布,userId 不为空
- RemoteUnpublished 远程取消发布,userId 不为空
- RemoteUserMuted 远程用户静音,userId 不为空
- RoomLeft 离开房间
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.addEventListener(function(ret){
api.alert({msg:JSON.stringify(ret)})
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
销毁RTC实例
destory()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.destory();
可用性
Android 系统
可提供的 1.0.0 及更高版本
initEffect
初始化美颜功能
initEffect({params},callback(ret))
Params
modelFileDirPath:
- 类型:字符串
- 描述:算法模型文件所在目录路径,(仅支持ios),要求本地路径。如:widget://res/ModelResource.bundle
licenseFilePath:
- 类型:字符串
- 描述:授权文件路径,(仅支持ios),要求本地路径。如:widget://res/LicenseBag.bundle/qiniu_20200214_20210213_com.qbox.PLShortVideoKit.ByteDance.Demo_qiniu_v3.4.2.licbag
resPath:
- 类型:字符串
- 描述:资源文件路径(仅支持android,支持 fs://路径)
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.initEffect({
modelFileDirPath:"widget://res/ModelResource.bundle",
licenseFilePath:"widget://res/LicenseBag.bundle", @"qiniu_20200214_20210213_com.qbox.QNRTCKitDemo.bytedance_qiniu_v3.4.2.licbag",
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getStickers
获取滤镜和贴纸
getStickers({params}, callback(ret))
params
type:
- 类型:字符串
- 描述:获取的类型
- 默认:sticker
- 取值范围:
- sticker:贴纸
- filter:滤镜
callback(ret)
ret:
- 类型:JSON对象
- 描述:状态
{
stickers: { //数组类型;
displayName:, //字符串类型;显示名称
path:'', //字符串类型;路径,拼接/icon.png即可获取该图片
tip:'', //字符串类型;触发类效果提示文案
intensity: //数字类型;强度
}
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getStickers({
type:'filter'
},function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
setSticker
设置贴纸
setSticker()
displayName:
- 类型:字符串
- 描述:贴纸效果名称,若不传则表示去掉已设置的贴纸
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setSticker({
displayName: '招财猫'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setFillter
设置滤镜
setFillter()
displayName:
- 类型:字符串
- 描述:滤镜效果名称,若不传则表示去掉已设置的滤镜
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setFillterr({
displayName: '红唇'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getMakeUp
获取美颜、美型、美体、口红、腮红、修容、美瞳、染发、眼影、眉毛
getMakeUp({params}, callback(ret))
params
type:
- 类型:字符串
- 描述:获取的类型
- 默认:sticker
- 取值范围:
- beauty:美颜
- reshape:美型
- body:美体
- lip:口红
- blush:晒红
- facial:修容
- pupil:美瞳
- hair:染发
- eyeshadow:眼影
- eyebrow:眉毛
callback(ret)
ret:
- 类型:JSON对象
- 描述:状态
{
makeUps: { //数组类型;
displayName:, //字符串类型;显示名称
path:'', //字符串类型;路径,拼接/displayName/icon.png即可获取该图片
internalKey:'', //字符串类型;算法内部识别类型的key
intensity: //数字类型;强度
}
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getMakeUp({
type:'beauty'
},function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
updateMakeups
设置多个效果
updateMakeups()
type:
- 类型:字符串
- 描述:获取的类型
- 默认:sticker
- 取值范围:
- beauty:美颜
- reshape:美型
- body:美体
- lip:口红
- blush:晒红
- facial:修容
- pupil:美瞳
- hair:染发
- eyeshadow:眼影
- eyebrow:眉毛
makeups:
- 类型:数组
- 描述:效果名称组成的数组,如['蜜桃','微醺','甜橙'],若不传则表示去掉已设置的
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateMakeups({
type:'blush',
makeups: ['蜜桃','微醺','甜橙']
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
updateMakeupIntensity
更新美颜美妆及其强度
updateMakeupIntensity()
type:
- 类型:字符串
- 描述:获取的类型
- 默认:sticker
- 取值范围:
- beauty:美颜
- reshape:美型
- body:美体
- lip:口红
- blush:晒红
- facial:修容
- pupil:美瞳
- hair:染发
- eyeshadow:眼影
- eyebrow:眉毛
displayName:
- 类型:字符串
- 描述:贴纸效果名称,若不传则表示去掉已设置的
intensity:
- 类型:数字
- 描述:强度 0.5
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateMakeupIntensity({
type:'blush',
intensity:0.5,
displayName: '蜜桃'
});
可用性
iOS 系统
可提供的 1.0.0 及更高版本
setComposeNodes
设置特效组合,目前仅支持美颜、美型两种特效的任意叠加
setComposeNodes({params})
Params
nodes:
- 类型:JSON数组
- 描述:资源路径数组
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setComposeNodes({
nodes:[]
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
setComposerMode
设置 composer 类型特效(美颜、美妆)是否可以与贴纸特效叠加
setComposerMode({params})
Params
mode:
- 类型:字符串
- 描述:叠加模式
- 取值:
- ALONE 不可叠加
- SHARE 可叠加
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setComposerMode({
mode:'SHARE'
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateComposeNode
更新某个特效的强度
updateComposeNode({params})
Params
key:
- 类型:字符串
- 描述:特效所对应的 key
value:
- 类型:数字
- 描述:特效强度
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.setComposeNodes({
key:'',
value:0.5
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateIntensity
更新某个特效的强度
updateComposeNode({params})
Params
type:
- 类型:字符串
- 描述:强度类型
- 取值:
- filter
- beautyWhite
- beautySmooth
- faceReshape
- beautySharp
intensity:
- 类型:数字
- 描述:强度值 范围 0~1
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateIntensity({
type:'',
intensity:0.5
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getComposeNodes
获得已经开启的特效节点
getComposeNodes()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
nodes:[]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getComposeNodes(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
recoverStatus
恢复特效设置
recoverStatus()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.recoverStatus();
可用性
Android 系统
可提供的 1.0.0 及更高版本
destroyEffectSDK
释放特效资源
destroyEffectSDK()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.destroyEffectSDK();
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getFilterList
获取支持的滤镜列表
getFilterList()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
filterItems:[{
defaultIntensity:'',
fileName:'',
filterName:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getFilterList(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getStickerList
获取支持的贴纸列表
getStickerList()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
stickerItems:[{
stickerName:'',
fileName:'',
tips:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getStickerList(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getShapeList
获取支持的美型列表
getShapeList()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
makeUpModels:[{
defaultIntensity:0.5,
effectName:'',
fileName:'',
key:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getShapeList(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getMakeUpList
获取支持的美妆类型列表
getMakeUpList()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
makeUpModels:[{
defaultIntensity:0.5,
effectName:'',
fileName:'',
key:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getMakeUpList(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getMakeUpOptionItems
获取支持的美妆效果集合
getMakeUpOptionItems()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
makeUpModels:[{
defaultIntensity:0.5,
effectName:'',
fileName:'',
key:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getMakeUpOptionItems(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
getBodyList
获取支持的美体列表
getBodyList()
callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
makeUpModels:[{
defaultIntensity:0.5,
effectName:'',
fileName:'',
key:'',
iconPath:''
}]
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.getBodyList(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateComposeList
更新 compose 类型特效列表
updateComposeList()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateComposeList();
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateFilterList
更新滤镜列表
updateFilterList()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateFilterList();
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateStickerList
更新动态贴纸列表
updateStickerList()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateStickerList();
可用性
Android 系统
可提供的 1.0.0 及更高版本
updateAllList
更新全部特效列表
updateAllList()
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.updateAllList();
可用性
Android 系统
可提供的 1.0.0 及更高版本
isUsingEffect
判断是否正在使用特效
isUsingEffect()
Callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
status:true // 是否使用特效
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.isUsingEffect(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isEffectSDKInited
检测 SDK 是否已经初始化完毕
isEffectSDKInited()
Callback
ret:
- 类型:JSON 对象
- 描述:返回值
{
status:true // 是否初始化完毕
}
示例代码
var qiniuRTC = api.require('qiniuRTC');
qiniuRTC.isEffectSDKInited(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android 系统
可提供的 1.0.0 及更高版本