- tyRTCLive
- 概述
- 准备工作
- setGlobalStatusListener
- setLogStatusListener
- setChannelListener
- setCastStatusListener
- setPlayStatusListener
- login
- logout
- getLiveChannel
- startPreview
- startCast
- stopCast
- pauseCast
- startPlay
- stopPlay
- mute
- switchCamera
- rotateCamera
- getKBSent
- getKBQueue
- getKBitrate
- getTimeCast
- isConnected
- getPlayMediaPosition
- setPlayMediaPosition
- 错误码
tyRTCLive
setGlobalStatusListener setLogStatusListener setChannelListener setCastStatusListener setPlayStatusListener
概述
天翼RTC云直播,是中国电信基于优势的网络与云资源打造的云直播产品,为企业客户提供各种场景下端到端的互联网直播产品。 tyRTCLive模块封装了天翼RTC云直播产品的SDK,使用此模块可轻松实现直播功能。
天翼RTC平台官方网站:http://www.chinartc.com/dev/
天翼RTC开发者支持QQ群:172898609(含示例代码下载)
天翼RTC云直播资费标准:请进入开发者支持群咨询
准备工作
请开发者进入门户提交资料并接受平台审核,审核通过后将获得appId及appKey。 若开发者同时接入tyRTC以及tyRTCLive模块,同时使用音视频通信以及直播功能,请申请两套appId及appKey,分别用于音视频通信和直播,不能混用。
注意:本模块要求iOS 8.0以上。编译时,先在APICloud 编译界面高级设置,选择固件版本iOS 8.0 以上。
setGlobalStatusListener
设置回调函数,监听客户端全局状态
setGlobalStatusListener(onGlobalStatus(data))
onGlobalStatus(data)
data:
- 类型:字符串
描述:返回客户端实时状态,详情如下:
"getKBSent:xx":得到直播已发送字节
"getKBQueue:xx":得到直播缓存中字节
"getKBitrate:xx":得到直播上传速率
"getTimeCast:xx":得到直播时间
"isConnected:xx":得到直播状态
"getPlayMediaPosition:xx":得到当前播放时间
"getPlayMediaDuration:xx":得到视频总长度
示例代码
var demo = api.require('tyRTCLive');
demo.setGlobalStatusListener(onGlobalStatus);
function onGlobalStatus(data){
alert(data);
}
补充说明
可在登录之前调用此接口设置回调函数
可用性
iOS系统
setLogStatusListener
设置客户端注册至RTC平台的回调函数
setLogStatusListener(cbLogStatus(data))
cbLogStatus(data)
data:
- 类型:字符串
描述:返回客户端注册至RTC平台的结果,详情如下:
“OK:LOGIN”:登录成功
“OK:LOGOUT”:注销成功
“ERROR:PARM_ERROR”:登录参数有误
“ERROR:error_msg”:error_msg为其他错误信息
示例代码
var demo = api.require('tyRTCLive');
demo.setLogStatusListener(cbLogStatus);
function cbLogStatus(data){
alert(data);
}
补充说明
可在登录之前调用此接口设置回调函数
可用性
iOS系统
setChannelListener
设置获取推流和播放地址的回调函数
setChannelListener(cbGetChannel(data))
cbGetChannel(data)
data:
- 类型:字符串
描述:返回客户端注册至RTC平台的结果,详情如下:
“OK:url={"pushurl":"xx","playurl":"xx"}”:获取推流和播放地址,通过json返回
“ERROR:UNREGISTER”:未注册至RTC平台
“ERROR:error_msg”:error_msg为其他错误信息
示例代码
var demo = api.require('tyRTCLive');
demo.setChannelListener(cbGetChannel);
function cbGetChannel(data){
alert(data);
}
补充说明
可在登录之前调用此接口设置回调函数
可用性
iOS系统
setCastStatusListener
设置直播状态的回调函数
setCastStatusListener(cbCastStatus(data))
cbCastStatus(data)
data:
- 类型:字符串
描述:返回呼叫的结果,详情如下:
“OK:NORMAL”:正常状态(未在直播)
“OK:PREVIEW”:预览状态,未开始直播
“OK:CASTING”:直播中
“OK:PAUSE”:暂停直播
"ERROR:CAST_FAIL":发起预览或发起推流失败
"ERROR:CAST_CLOSE":推流异常断开
“ERROR:UNREGISTER”:未注册至RTC平台
示例代码
var demo = api.require('tyRTCLive');
demo.setCastStatusListener(cbCastStatus);
function cbCastStatus(data){
alert(data);
}
补充说明
可在登录之前调用此接口设置回调函数
可用性
iOS系统
setPlayStatusListener
设置播放状态的回调函数
setPlayStatusListener(cbPlayStatus(data))
cbPlayStatus(data)
data:
- 类型:字符串
描述:返回呼叫的结果,详情如下:
“OK:NORMAL”:正常状态(未在播放)
“OK:PLAYING”:正在打开视频或播放中
“OK:PAUSE”:暂停播放
“OK:FINISH”:播放结束
"ERROR:PLAY_FAIL":发起播放失败
"ERROR:PLAYER_ERR,errcode":播放器发生错误
“ERROR:UNREGISTER”:未注册至RTC平台
示例代码
var demo = api.require('tyRTCLive');
demo.setPlayStatusListener(cbPlayStatus);
function cbPlayStatus(data){
alert(data);
}
补充说明
可在登录之前调用此接口设置回调函数
可用性
iOS系统
login logout getLiveChannel startPreview startCast stopCast pauseCast startPlay stopPlay mute switchCamera rotateCamera getKBSendt getKBQueue getKBitrate getTimeCast isConnected getPlayMediaPosition setPlayMediaPosition
login
登录直播云平台
login({params})
params
appID:
- 类型:字符串
- 默认值:无
- 描述:从RTC平台申请的appId,不能为空
appKey:
- 类型:字符串
- 默认值:无
- 描述:从RTC平台申请的appKey,不能为空
accID:
- 类型:字符串
- 默认值:无
- 描述:RTC分配的直播应用ID,每个直播应用分配不同的应用ID,不能为空(此参数暂不支持从门户获取,请进入开发者群咨询)
accKey:
- 类型:字符串
- 默认值:无
- 描述:RTC分配的直播应用Key,与accID成对获取
userID:
- 类型:字符串
- 默认值:无
- 描述:用户自定义登录账号,不能为空,账号不可包含“~”、“-”、空格、中文字符。
示例代码
var setparam = {
appID:"123",
appKey:"123456",
accID:"myacc",
accKey:"mykey",
userID:"001"
};
var demo = api.require('tyRTCLive');
demo.login(setparam);
补充说明
登录结果返回至cbLogStatus回调函数
可用性
iOS系统
logout
从RTC平台注销
logout()
示例代码
var demo = api.require('tyRTCLive');
demo.logout();
补充说明
注销结果返回至cbLogStatus回调函数
可用性
iOS系统
getLiveChannel
获取推流和播放地址
getLiveChannel()
示例代码
var demo = api.require('tyRTCLive');
demo.getLiveChannel();
补充说明
登录成功之后才能调用此接口,结果返回至cbGetChannel回调函数 得到推流和播放地址后请应用层做好缓存
可用性
iOS系统
startPreview
直播预览
startPreview({params})
params
castView:
- 类型:字符串
- 默认值:无
- 描述:直播视频窗口位置和大小数据,不能为空,为一个json字符串,格式为: {x, y, w, h},”x”表示窗口起始x坐标,”y”表示窗口起始y坐标,”w”表示窗口宽度,”h”表示窗口高度。视频窗口在开始直播预览时创建。
resolution:
- 类型:字符串
- 默认值:无
- 描述:视频分辨率,不能为空,为一个json字符串,格式为:{w, h},”w”表示分辨率宽,”h”表示分辨率高。
- wh或hw的取值范围如下:192x144/352x288/480x360/640x360/640x480/704x576/960x540/1280x720/1280x960/1920x1080
frameRate:
- 类型:整数
- 默认值:24
- 描述:帧率。
cameraID:
- 类型:整数
- 默认值:0
- 描述:摄像头ID,0为后置摄像头,1为前置摄像头。
codec:
- 类型:整数
- 默认值:0
- 描述:编码器选择,0为硬件编码,1为软件编码。
onlyAudio:
- 类型:整数
- 默认值:0
- 描述:是否纯音频,0为音+视频,1为纯音频。
示例代码
var jsonObj1 = {};
jsonObj1.x = 100;
jsonObj1.y = 100;
jsonObj1.w = 144;
jsonObj1.h = 176;
var jsonObj2 = {};
jsonObj2.w = 144;
jsonObj2.h = 192;
var setparam = {
castView:JSON.stringify(jsonObj1),
resolution:JSON.stringify(jsonObj2),
frameRate:24,
cameraID:0,
codec:0,
onlyAudio:0
};
var demo = api.require('tyRTCLive');
demo.startPreview(setparam);
补充说明
结果上报至cbCastStatus回调函数
可用性
iOS系统
startCast
开始直播
startCast({params})
params
url:
- 类型:字符串
- 默认值:无
- 描述:getLiveChannel获取的直播推流地址,不能为空。
示例代码
var param = {
url:"rtmp://..."
};
var demo = api.require('tyRTCLive');
demo.startCast(param);
补充说明
开始直播前需要先调用直播预览,结果上报至cbCastStatus回调函数
可用性
iOS系统
stopCast
结束直播
stopCast()
示例代码
var demo = api.require('tyRTCLive');
demo.stopCast();
补充说明
结果上报至cbCastStatus回调函数
可用性
iOS系统
pauseCast
暂停直播
pauseCast({params})
params
value:
- 类型:字符串
- 默认值:无
- 描述:”true”:暂停,”false”:继续
示例代码
var demo = api.require('tyRTCLive');
var param = {
value:"true"
};
demo.pauseCast(param);
补充说明
结果上报至cbCastStatus回调函数
可用性
iOS系统
startPlay
开始播放
startPlay({params})
params
playView:
- 类型:字符串
- 默认值:无
- 描述:播放直播视频窗口位置和大小数据,不能为空,为一个json字符串,格式为: {x, y, w, h},”x”表示窗口起始x坐标,”y”表示窗口起始y坐标,”w”表示窗口宽度,”h”表示窗口高度。视频窗口在开始播放时创建。
url:
- 类型:字符串
- 默认值:无
- 描述:getLiveChannel获取的观看地址,不能为空。
onlyAudio:
- 类型:整数
- 默认值:无
- 描述:是否播放纯音频,0为音+视频,1为纯音频。
示例代码
var jsonObj = {};
jsonObj.x = 100;
jsonObj.y = 100;
jsonObj.w = 144;
jsonObj.h = 176;
var param = {
playView:JSON.stringify(jsonObj),
url:"rtmp://...",
onlyAudio:0
};
var demo = api.require('tyRTCLive');
demo.startPlay(param);
补充说明
此过程为同步过程,结果上报至cbPlayStatus回调函数
可用性
iOS系统
stopPlay
结束播放
stopPlay()
示例代码
var demo = api.require('tyRTCLive');
demo.stopPlay();
补充说明
结果上报至cbPlayStatus回调函数
可用性
iOS系统
mute
设置静音/取消静音
mute({params})
params
value:
- 类型:字符串
- 默认值:无
- 描述:”true”:静音;”false”:取消静音
示例代码
var muteparam = {
value:"true"
};
var demo = api.require('tyRTCLive');
demo.mute(muteparam);
补充说明
无
可用性
iOS系统
switchCamera
切换前后置摄像头
switchCamera()
示例代码
var demo = api.require('tyRTCLive');
demo.switchCamera();
补充说明
无
可用性
iOS系统
rotateCamera
旋转摄像头
rotateCamera({params})
params
value:
- 类型:整数
- 默认值:无
- 描述:画面逆时针旋转。0:旋转0度;1:旋转90度;2:旋转180度,3:旋转270度
示例代码
var param = {
value:1
};
var demo = api.require('tyRTCLive');
demo.rotateCamera(param);
补充说明
无
可用性
iOS系统
getKBSent
获取已发送的数据大小,单位KB
getKBSend()
示例代码
var demo = api.require('tyRTCLive');
demo.getKBSent();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
getKBQueue
获取缓存中数据大小,单位KB
getKBQueue()
示例代码
var demo = api.require('tyRTCLive');
demo.getKBQueue();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
getKBitrate
获取发送速率,单位KB/S
getKBitrate()
示例代码
var demo = api.require('tyRTCLive');
demo.getKBitrate();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
getTimeCast
获取直播时间,单位秒
getTimeSend()
示例代码
var demo = api.require('tyRTCLive');
demo.getTimeSend();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
isConnected
获取直播连接或断开状态
isConnected()
示例代码
var demo = api.require('tyRTCLive');
demo.isConnected();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
getPlayMediaPosition
得到当前点播播放时间,单位秒
getPlayMediaPosition()
示例代码
var demo = api.require('tyRTCLive');
demo.getPlayMediaPosition();
补充说明
结果上报至onGlobalStatus回调函数
可用性
iOS系统
setPlayMediaPosition
设置当前点播时间,用于设置视频观看进度
setPlayMediaPosition{params})
params
position:
- 类型:float
- 默认值:无
- 描述:点播时间,单位秒。
示例代码
var demo = api.require('tyRTCLive');
var param = {
position:0.0
};
demo.setPlayMediaPosition(param);
补充说明
无
可用性
iOS系统
错误码
错误类型
取值范围:
- 400 //请求类错误4xx的下界
- 403 //被踢或token失效,请重新获取token,重新注册
- 404 //呼叫的号码不存在,被叫号码从未获取token登录过
- 408 //超时,请求服务器超时或被呼叫方网络异常
- 480 //对方不在线,对方未登陆,或网络异常断开一段时间
- 486 //正忙
- 487 //取消呼叫
- 488 //媒体协商失败
- 500 //服务器类错误5xx的下界
- 503 //网络不可用或服务器错误
- 600 //全局错误6xx的下界
- 603 //被叫拒接,或服务器拒绝请求
- 891 //已经在其他地方接听
- 1001 //内存错误
- 1002 //参数错误
- 1003 //缺少参数
- 1004 //重置参数失败
- 1005 //呼叫失败
- 1006 //呼叫结束
- 1007 //动作失败
- 1008 //sdk已初始化
- 1009 //sdk初始化不完整
- 1010 //容量溢出
- 1011 //无效函数