tyRTCLive

概述

天翼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

登录直播云平台

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 //无效函数