qiniuRTC

概述

qiniuRTC模块封装了七牛实时音视频sdk,七牛实时音视频是七牛推出的一款适用于 Android 平台的音视频通话 SDK,提供了包括美颜、滤镜、音视频通话等多种功能,提供灵活的接口,支持高度定制以及二次开发,您可以很方便地在 Android 平台上开发出一款基于实时音视频的应用。其中包括但不限于以下场景:

- 在线教育
- 在线直播互动连麦
- 视频会议
- 一对一社交
- 狼人杀等依赖实时音视频通话的游戏
- 在线客服
- 在线抓娃娃

模块接口

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

创建本地预览窗口或远端视频窗口

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 及更高版本

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 系统,Android 系统

可提供的 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 系统,Android 系统

可提供的 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 系统,Android 系统

可提供的 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 (视图的层级)
    }
    ]
    

示例代码

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 及更高版本

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 及更高版本