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:

  • 类型:字符串
  • 描述:返回客户端实时状态,详情如下:

    1. "getKBSent:xx":得到直播已发送字节
    2. "getKBQueue:xx":得到直播缓存中字节
    3. "getKBitrate:xx":得到直播上传速率
    4. "getTimeCast:xx":得到直播时间
    5. "isConnected:xx":得到直播状态
    6. "getPlayMediaPosition:xx":得到当前播放时间
    7. "getPlayMediaDuration:xx":得到视频总长度

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.setGlobalStatusListener(onGlobalStatus);
  3. function onGlobalStatus(data){
  4. alert(data);
  5. }

补充说明

可在登录之前调用此接口设置回调函数

可用性

iOS系统

setLogStatusListener

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

setLogStatusListener(cbLogStatus(data))

cbLogStatus(data)

data:

  • 类型:字符串
  • 描述:返回客户端注册至RTC平台的结果,详情如下:

    1. OK:LOGIN”:登录成功
    2. OK:LOGOUT”:注销成功
    3. ERROR:PARM_ERROR”:登录参数有误
    4. ERROR:error_msg”:error_msg为其他错误信息

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.setLogStatusListener(cbLogStatus);
  3. function cbLogStatus(data){
  4. alert(data);
  5. }

补充说明

可在登录之前调用此接口设置回调函数

可用性

iOS系统

setChannelListener

设置获取推流和播放地址的回调函数

setChannelListener(cbGetChannel(data))

cbGetChannel(data)

data:

  • 类型:字符串
  • 描述:返回客户端注册至RTC平台的结果,详情如下:

    1. OK:url={"pushurl":"xx","playurl":"xx"}”:获取推流和播放地址,通过json返回
    2. ERROR:UNREGISTER”:未注册至RTC平台
    3. ERROR:error_msg”:error_msg为其他错误信息

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.setChannelListener(cbGetChannel);
  3. function cbGetChannel(data){
  4. alert(data);
  5. }

补充说明

可在登录之前调用此接口设置回调函数

可用性

iOS系统

setCastStatusListener

设置直播状态的回调函数

setCastStatusListener(cbCastStatus(data))

cbCastStatus(data)

data:

  • 类型:字符串
  • 描述:返回呼叫的结果,详情如下:

    1. OK:NORMAL”:正常状态(未在直播)
    2. OK:PREVIEW”:预览状态,未开始直播
    3. OK:CASTING”:直播中
    4. OK:PAUSE”:暂停直播
    5. "ERROR:CAST_FAIL":发起预览或发起推流失败
    6. "ERROR:CAST_CLOSE":推流异常断开
    7. ERROR:UNREGISTER”:未注册至RTC平台

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.setCastStatusListener(cbCastStatus);
  3. function cbCastStatus(data){
  4. alert(data);
  5. }

补充说明

可在登录之前调用此接口设置回调函数

可用性

iOS系统

setPlayStatusListener

设置播放状态的回调函数

setPlayStatusListener(cbPlayStatus(data))

cbPlayStatus(data)

data:

  • 类型:字符串
  • 描述:返回呼叫的结果,详情如下:

    1. OK:NORMAL”:正常状态(未在播放)
    2. OK:PLAYING”:正在打开视频或播放中
    3. OK:PAUSE”:暂停播放
    4. OK:FINISH”:播放结束
    5. "ERROR:PLAY_FAIL":发起播放失败
    6. "ERROR:PLAYER_ERR,errcode":播放器发生错误
    7. ERROR:UNREGISTER”:未注册至RTC平台

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.setPlayStatusListener(cbPlayStatus);
  3. function cbPlayStatus(data){
  4. alert(data);
  5. }

补充说明

可在登录之前调用此接口设置回调函数

可用性

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:

  • 类型:字符串
  • 默认值:无
  • 描述:用户自定义登录账号,不能为空,账号不可包含“~”、“-”、空格、中文字符。

示例代码

  1. var setparam = {
  2. appID:"123",
  3. appKey:"123456",
  4. accID:"myacc",
  5. accKey:"mykey",
  6. userID:"001"
  7. };
  8. var demo = api.require('tyRTCLive');
  9. demo.login(setparam);

补充说明

登录结果返回至cbLogStatus回调函数

可用性

iOS系统

logout

从RTC平台注销

logout()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.logout();

补充说明

注销结果返回至cbLogStatus回调函数

可用性

iOS系统

getLiveChannel

获取推流和播放地址

getLiveChannel()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. 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为纯音频。

示例代码

  1. var jsonObj1 = {};
  2. jsonObj1.x = 100;
  3. jsonObj1.y = 100;
  4. jsonObj1.w = 144;
  5. jsonObj1.h = 176;
  6. var jsonObj2 = {};
  7. jsonObj2.w = 144;
  8. jsonObj2.h = 192;
  9. var setparam = {
  10. castView:JSON.stringify(jsonObj1),
  11. resolution:JSON.stringify(jsonObj2),
  12. frameRate:24,
  13. cameraID:0,
  14. codec:0,
  15. onlyAudio:0
  16. };
  17. var demo = api.require('tyRTCLive');
  18. demo.startPreview(setparam);

补充说明

结果上报至cbCastStatus回调函数

可用性

iOS系统

startCast

开始直播

startCast({params})

params

url:

  • 类型:字符串
  • 默认值:无
  • 描述:getLiveChannel获取的直播推流地址,不能为空。

示例代码

  1. var param = {
  2. url:"rtmp://..."
  3. };
  4. var demo = api.require('tyRTCLive');
  5. demo.startCast(param);

补充说明

开始直播前需要先调用直播预览,结果上报至cbCastStatus回调函数

可用性

iOS系统

stopCast

结束直播

stopCast()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.stopCast();

补充说明

结果上报至cbCastStatus回调函数

可用性

iOS系统

pauseCast

暂停直播

pauseCast({params})

params

value:

  • 类型:字符串
  • 默认值:无
  • 描述:”true”:暂停,”false”:继续

示例代码

  1. var demo = api.require('tyRTCLive');
  2. var param = {
  3. value:"true"
  4. };
  5. 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为纯音频。

示例代码

  1. var jsonObj = {};
  2. jsonObj.x = 100;
  3. jsonObj.y = 100;
  4. jsonObj.w = 144;
  5. jsonObj.h = 176;
  6. var param = {
  7. playView:JSON.stringify(jsonObj),
  8. url:"rtmp://...",
  9. onlyAudio:0
  10. };
  11. var demo = api.require('tyRTCLive');
  12. demo.startPlay(param);

补充说明

此过程为同步过程,结果上报至cbPlayStatus回调函数

可用性

iOS系统

stopPlay

结束播放

stopPlay()

示例代码

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

补充说明

结果上报至cbPlayStatus回调函数

可用性

iOS系统

mute

设置静音/取消静音

mute({params})

params

value:

  • 类型:字符串
  • 默认值:无
  • 描述:”true”:静音;”false”:取消静音

示例代码

  1. var muteparam = {
  2. value:"true"
  3. };
  4. var demo = api.require('tyRTCLive');
  5. demo.mute(muteparam);

补充说明

可用性

iOS系统

switchCamera

切换前后置摄像头

switchCamera()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.switchCamera();

补充说明

可用性

iOS系统

rotateCamera

旋转摄像头

rotateCamera({params})

params

value:

  • 类型:整数
  • 默认值:无
  • 描述:画面逆时针旋转。0:旋转0度;1:旋转90度;2:旋转180度,3:旋转270度

示例代码

  1. var param = {
  2. value:1
  3. };
  4. var demo = api.require('tyRTCLive');
  5. demo.rotateCamera(param);

补充说明

可用性

iOS系统

getKBSent

获取已发送的数据大小,单位KB

getKBSend()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.getKBSent();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

getKBQueue

获取缓存中数据大小,单位KB

getKBQueue()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.getKBQueue();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

getKBitrate

获取发送速率,单位KB/S

getKBitrate()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.getKBitrate();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

getTimeCast

获取直播时间,单位秒

getTimeSend()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.getTimeSend();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

isConnected

获取直播连接或断开状态

isConnected()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.isConnected();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

getPlayMediaPosition

得到当前点播播放时间,单位秒

getPlayMediaPosition()

示例代码

  1. var demo = api.require('tyRTCLive');
  2. demo.getPlayMediaPosition();

补充说明

结果上报至onGlobalStatus回调函数

可用性

iOS系统

setPlayMediaPosition

设置当前点播时间,用于设置视频观看进度

setPlayMediaPosition{params})

params

position:

  • 类型:float
  • 默认值:无
  • 描述:点播时间,单位秒。

示例代码

  1. var demo = api.require('tyRTCLive');
  2. var param = {
  3. position:0.0
  4. };
  5. 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 //无效函数