下载文档

uexESurfingRtc
更新时间:2016-09-30

1、简介

天翼RTC插件
插件作者:来自天翼RTC官方

1.1、说明

天翼RTC是基于 WebRTC 技术的 Telco-OTT 实时云通讯能力,降低 App 内多媒体通信开发和提供门槛。
为广大 App、网站等开发者提供嵌入式实时语音和视频沟通服务(云平台+终端 SDK),实现互联网通信,降低沟通成本,并在应用内集成,保证用户体验。
天翼RTC平台官方网站:http://www.chinartc.com/dev/
天翼RTC开发者支持QQ群:172898609
天翼RTC公有云咨费标准:http://www.chinartc.com/dev/rtcweb/price.html

使用之前请先查看操作手册

1.2、UI展示

1.3、开源源码

插件测试用例与源码下载:点击 插件中心至插件详情页
请使用iOS8+定制引擎打包,否则会导致打包失败。

2、API概览

2.1、方法

setAppKeyAndAppId 设置应用程序的appKey和appId接口

uexESurfingRtc.setAppKeyAndAppId(appKey, appId)
说明:
使用插件之前,必须先调用此接口。
参数:

参数名称 参数类型 是否必选 说明
appKey String 应用程序的appKey
appId String 应用程序的appId

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

login 初始化RTC 客户端,并注册至RTC平台接口

uexESurfingRtc.login(jsonViewConfig, userName)
说明:
初始化RTC 客户端,并注册至RTC平台接口,回调方法cbLogStatus
参数:

参数名称 参数类型 是否必选 说明
jsonViewConfig String 通话视频窗口位置和大小数据
userName String 本地用户账号

jsonViewConfig为一json字符串,格式为:

  1. {"localView" : {"x":"10", "y":"800", "w":"432", "h":"528"}, "remoteView" : {"x":"440", "y":"800", "w":"432", "h":"528"}}
参数名称 说明
localView 本地窗口配置信息
remoteView 远程窗口配置信息
x 窗口起始x坐标
y 窗口起始y坐标
w 窗口宽度
h 窗口高度

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

logout 退出RTC平台接口

uexESurfingRtc.logout()
说明:
退出RTC平台接口
参数:

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

call 创建呼叫接口

uexESurfingRtc.call(callType, callName, callInfo)
说明:
创建呼叫接口,回调方法cbCallStatus
参数:

参数名称 参数类型 是否必选 说明
callType Number 呼叫类型。1:Audio。2:Audio + Video。3:Audio + Video,RecvOnly。4:Audio + Video,SendOnly。
callName String 被叫用户名
callInfo String 应用自定义传递的字符串,不可包含逗号。

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

acceptCall 接听呼叫接口

uexESurfingRtc.acceptCall(callType)
说明:
接听呼叫接口,回调方法cbCallStatus
参数:

参数名称 参数类型 是否必选 说明
callType Number 接听类型。1:Audio。2:Audio + Video。3:Audio + Video,RecvOnly。4:Audio + Video,SendOnly。

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

hangUp 挂断呼叫接口

uexESurfingRtc.hangUp()
说明:
挂断呼叫接口,回调方法cbCallStatus
参数:

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

mute 设置静音/取消静音接口

uexESurfingRtc.mute(value)
说明:
设置静音/取消静音接口
参数:

参数名称 参数类型 是否必选 说明
value String 静音:”true”;取消静音”false”

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

loudSpeaker 设置扬声器/电话听筒接口

uexESurfingRtc.loudSpeaker(value)
说明:
设置扬声器/电话听筒接口
参数:

参数名称 参数类型 是否必选 说明
value String 扬声器:”true”;电话听筒”false”

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

setVideoAttr 设置视频清晰度

uexESurfingRtc.setVideoAttr(value)
说明:
设置视频清晰度
参数:

参数名称 参数类型 是否必选 说明
value Number 可选值0-2。0:流畅;1:标清;2:高清

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

takeRemotePicture 截屏接口

uexESurfingRtc.takeRemotePicture()
说明:
截屏接口,截取远程视频的图像,回调方法cbRemotePicPath
截屏图片,在Android系统中以“png”格式保存在本地,目录为:根目录/appName/photo/,appName为应用的名称。
图片以时间点命名,如20150520161035.png。
在iOS系统中保存在相册中。
参数:

平台支持:
Android2.2+
iOS6.0+
版本支持:
3.0.0+
示例:
参考

sendMessage 发送文本消息接口

uexESurfingRtc.sendMessage(userName, msg)
说明:
发送文本消息,回调方法cbMessageStatus

参数:

参数名称 参数类型 是否必选 说明
userName String 被叫用户名
msg String 消息内容

平台支持:
Android2.2+
iOS6.0+
版本支持:
Android3.1.6+
iOS3.0.11+
示例:
参考

switchCamera 切换摄像头接口

uexESurfingRtc.switchCamera(value)
说明:
切换摄像头

参数:

参数名称 参数类型 是否必选 说明
value String 前置摄像头:”front”,后置摄像头:”back”

平台支持:
Android2.2+
iOS6.0+
版本支持:
Android3.1.7+
iOS3.0.12+
示例:
参考

rotateCamera 旋转摄像头接口

uexESurfingRtc.rotateCamera(value)
说明:
旋转摄像头

参数:

参数名称 参数类型 是否必选 说明
value Number 画面逆时针旋转。0:旋转0度;1:旋转90度;2:旋转180度,3:旋转270度

平台支持:
Android2.2+
iOS6.0+
版本支持:
Android3.1.7+
iOS3.0.12+
示例:
参考

switchView 交换本地与远端视频画面接口

uexESurfingRtc.switchView()
说明:
交换本地与远端视频画面
参数:

平台支持:
Android2.2+
iOS6.0+
版本支持:
Android3.1.7+
iOS3.0.12+
示例:
参考

hideLocalView 隐藏本地画面

uexESurfingRtc.hideLocalView()
说明:
隐藏本地画面,对端将看不到本端的画面,显示黑屏
参数:

参数名称 参数类型 是否必选 说明
value String 显示:”show”,隐藏:”hide”

平台支持:
Android2.2+
iOS6.0+
版本支持:
Android3.1.8+
iOS3.0.14+
示例:
参考

2.2、监听方法

onGlobalStatus 监听客户端全局状态的回调函数

uexESurfingRtc.onGlobalStatus(opId, dataType, data)
参数:

参数名称 参数类型 是否必选 说明
opId Number 操作ID,在此函数中不起作用,可忽略
dataType Number 数据类型String标识,可忽略
data String 返回客户端实时状态,详情如下:
“ClientListener:onInit,result=”:result为初始化结果
“获取token: reason:”:获取token结果,reason为失败原因
“DeviceListener:onNewCall,call=”:有新来电,call为来电信息,其中”ci”为对方携带的呼叫信息,”t”为呼叫类型(1:音频,3:音+视频),”dir”为呼叫方向(1:去电,2:来电),”uri”为对方账号
“ConnectionListener:onConnecting”:通话请求连接中
“ConnectionListener:onConnected”:通话已接通
“ConnectionListener:onVideo”:通话接通后,媒体建立成功
“ConnectionListener:onDisconnect,code=”:通话连接中断,code为错误码
“StateChanged,result=200”:登录成功
“StateChanged,result=-1001”:没有网络
“StateChanged,result=-1002”:切换网络
“StateChanged,result=-1003”:网络较差
“StateChanged,result=-1004”:重连失败需要重新登录
“StateChanged,result=-1500”:同一账号在多个终端登录被踢下线
“StateChanged,result=-1501”:同一账号在多个设备类型登录
“call hangup”:主动挂断
“onReceiveIm:from:,msg:”:接收到文本消息,from为发送账号,msg为消息内容

版本支持:
3.0.0+
示例:

2.3、回调方法

cbLogStatus 客户端注册至RTC平台的回调函数

uexESurfingRtc.cbLogStatus(opId, dataType, data)
参数:

参数名称 参数类型 是否必选 说明
opId Number 操作ID,在此函数中不起作用,可忽略
dataType Number 数据类型String标识,可忽略
data String 返回客户端注册至RTC平台的结果,详情如下:
“OK:LOGIN”:登录成功
“OK:LOGOUT”:退出成功
“ERROR:PARM_ERROR”:登录参数有误
“ERROR:UNINIT”:RTC平台未初始化
“ERROR:error_msg”:error_msg为SDK
返回错误信息,如获取token失败

版本支持:
3.0.0+
示例:
参考

cbCallStatus 呼叫状态的回调函数

uexESurfingRtc.cbCallStatus(opId, dataType, data)
参数:

参数名称 参数类型 是否必选 说明
opId Number 操作ID,在此函数中不起作用,可忽略
dataType Number 数据类型String标识,可忽略
data String 返回呼叫的结果,详情如下:
“OK:NORMAL”:正常状态(未通话,也无来电)
“OK:INCOMING”:有来电,等待接听
“OK:CALLING”:呼叫中/接听来电
“ERROR:PARM_ERROR”:呼叫参数有误
“ERROR:UNREGISTER”:未注册至RTC平台

版本支持:
3.0.0+
示例:
参考

cbRemotePicPath 截屏的回调函数

uexESurfingRtc.cbRemotePicPath(opId, dataType, data)
参数:

参数名称 参数类型 是否必选 说明
opId Number 操作ID,在此函数中不起作用,可忽略
dataType Number 数据类型String标识,可忽略
data String 返回截屏图片存储的路径

版本支持:
3.0.0+
示例:
参考

cbMessageStatus 收发文本消息的回调函数

uexESurfingRtc.cbMessageStatus(opId, dataType, data)
参数:

参数名称 参数类型 是否必选 说明
opId Number 操作ID,在此函数中不起作用,可忽略
dataType Number 数据类型String标识,可忽略
data String 返回收发文本消息的结果,详情如下:
“OK:SEND”:发送文本消息成功
“ERROR:code”:发送文本消息失败,code为错误码
“OK:RECEIVE”:接收文本消息成功

版本支持:
Android3.1.6+
iOS3.1.1+
示例:
参考

3、config.xml配置方法

1)为保证iOS终端在后台能维持长连接,请在config文件中配置后台模式。

2)iOS支持log开关,$uexESurfingRtc_enablelog$表示是否允许生成log。value值为“1”时表示打印log,“0”为关闭,不配置则默认关闭。开启后会在控制台输出RTC的log信息,并且保存在应用沙盒内的tmp文件夹下。此功能只为了方便开发者调试,正式发布时必须关闭log。

3)notification表示当应用在后台时,来电通知的展现内容。value的取值与通知内容的对应关系如下:
(1)value=”callName”,则通知内容=”来电:xx”,xx为具体的来电号码(即call接口的callName参数)。
(2)value=”callInfo”,则通知内容=”来电:xx”,xx为呼叫附加信息(即call接口的callInfo参数,可以传入昵称等自定义信息)。
(3)value=任意字符串,则通知内容=value,若value中包含”callName”或”callInfo”字段,则通知内容的相应位置会替换为具体的”callName”或”callInfo”的值。
(4)value=”hideNotification”,则通知内容不显示。
(5)notification若不配置则默认value为“callName”。

配置示例代码如下:

  1. <config desc="backgroundConfig" type="AUTHORITY">
  2. <permission platform="iOS" info="backgroundMode" flag="5"/>
  3. </config>
  4. <config desc="uexESurfingRtc" type="KEY">
  5. <param platform="iOS" name="$uexESurfingRtc_enablelog$" value="1"/>
  6. <param platform="iOS" name="$uexESurfingRtc_notification$" value="callName"/>
  7. </config>

4、更新历史

API 版本:uexESurfingRtc-3.0.17(iOS) uexESurfingRtc-3.1.8(Android)
iOS最近更新时间:2016-9-29

历史发布版本 iOS更新
3.0.17 xcode8编译支持iOS10,支持自定义通知
3.0.16 优化通话流畅性与稳定性,恢复onGlobalStatus的回调时间
3.0.15 优化多终端登录互踢机制,去掉onGlobalStatus的回调时间
3.0.14 增加hideLocalView接口,被叫接听时显示窗口,支持ipv6,支持自定义后台来电通知
3.0.13 优化视频窗口大小
3.0.12 新增切换和旋转摄像头、交换窗口接口,call接口增加callInfo参数
3.0.11 新增接口sendMessage,修改call和acceptCall的calltype
3.0.10 单例类增加后缀RTC
3.0.9 修改为单例模式,回调返回至root窗口
3.0.8 修改cbCallStatus和onGlobalStatus回调
3.0.7 修改注册和挂断问题,增加后台重连机制
3.0.6 升级RTC sdk 增加appid 和appkey 回调
3.0.5 改为主函数回调
3.0.4 测试接收appid和appkey的方式
3.0.3 改变接收appid和appkey的方式
3.0.2 测试setappid接口
3.0.1 doNavigation参数默认传cloud2
3.0.0 天翼RTC插件

Android最近更新时间:2016-7-26

历史发布版本 安卓更新
3.1.8 新增hideLocalView接口,原生sdk替换为2.7.0
3.1.7 新增切换和旋转摄像头、交换窗口接口,call接口增加callInfo参数
3.1.6 支持单例,全部回调到root页,增加文本聊天接口,完善事件通知,调整callType的值
3.1.5 升级sdk2.6
3.1.4 升级RTC sdk
3.1.3 添加设置appKey和appId的回调
3.1.2 升级RTC sdk
3.1.1 升级RTC sdk
3.1.0 初始化插件。