CloudHub 文档中心
下载中心 文档中心

RTC 实时音视频


CloudHub JSSDK

Client 的说明以及接口

基础

init

方法作用: 初始化客户端对象。 使用该方法初始化客户端对象。

init(appId: string, options?:object, onSuccess?: function, onFailure?: function): void

// example:
client.init(appId, {}, function() {
  console.log("client initialized");
}, function(err) {
  console.log("client init failed", err);
});
名称类型描述
appIdstring传入您的项目的 AppID。
optionsobject配置项。
onSuccessfunction成功回调。
onFailurefunction失败回调,回调参数携带错误信息,可能的错误如:“INVALID_ARG”: 无效的参数。

renewToken

方法作用: 更新 Token。 如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当触发 Client.on(‘token-privilege-will-expire’) 回调时 App 应重新获取 Token,然后调用该方法更新 Token,否则 SDK 无法和服务器建立连接。

renewToken(token:string, onSuccess?:function, onFailure?:function): void

// example:
client.renewToken(<token>,  function(){
  console.info("renewToken success");
}, function(errflag){
  console.error("renewToken fail", errflag);
});
名称类型描述
tokenstring传入从您的服务端获得的 Token
1. cloudHub 建议您使用有效的 token(安全要求高)来加入频道。
2. 关于 token 的生成,请看 “token 生成” 文档。
3. 如果您需要使用有效的 token(安全要求高)来加入频道,请联系 cloudHub 的商务人员开启。
4. token 存在过期时间,收到 Client.on(‘token-privilege-will-expire’)回调后进行更新 Token。
5. token 存在过期时间,收到 Client.on(‘request-token’)回调后请使用新的 token 加入频道。
onSuccessfunction成功回调。
onFailurefunction失败回调,回调参数携带 errflag 参数。errflag 有如下值:* “ERR_INVALID_TOKEN” 无效的 token* “ERR_TOKEN_EXPIRED” token 已过期 * “ERR_REFUSED” 其它错误

Note: token 的生成由 authkey、secretkey 、channel、userid、expiretime 组合生成,所以请确保新生成的 token 使用的 authkey、secretkey 、channel、userid 不变。

事件

off

方法作用: 取消事件绑定。 该方法用于移除通过 Client.on() 绑定的事件。

off(eventType: string, listener: function): void

// example:
client.on("stream-published", function processStreamPublished(evt) {
  console.log("Stream Published");
  evt.stream.play("divId");
  client.off("stream-published", processStreamPublished);
}
名称类型描述
eventTypestring要移除的事件名称
listenerfunction要移除的事件监听器。

on

方法作用: 进行事件绑定。 目前支持绑定的事件以及事件的作用详情请看 Client 事件文档

on(eventType: string, listener: function): void

// example:
client.on('first-audio-frame-decode', function (evt) {
  // 已完成远端音频首帧解码回调。
  // 本地订阅远端流成功并完成第一帧音频解码时会触发该回调。
  console.log('first-audio-frame-decode', evt);
})
名称类型描述
eventTypestring要绑定的事件名称
listenerfunction要绑定的事件监听器

offAll

方法作用: 取消指定类型下的所有事件绑定。

offAll(eventType: string): void

// example:
client.offAll("stream-network-quality");

频道

setChannelConfig

方法作用: 设置通道配置, 可以在进入频道前修改’编码方式’和’频道的使用场景'

client.setChannelConfig({
    codec: 'vp8',
    mode: 'live',
});
名称类型描述
codecstring可选, 编码方式,编码方式有 “vp8” 和 “h264” ,缺省为 “vp8” 。
Note:: 1 个频道只能支持 1 种编码方式,以第 1 个进入频道的用户决定频道使用的编码方式。
modestring可选, 频道的使用场景,有通信场景 (“rtc”) 和直播场景 ( “live” ) 两种,缺省为 “rtc” 。
“live” : 直播场景,有主播和观众两种用户角色,可以通过 Client.setClientRole 方法设置主播和观众的角色。主播可以收发语音 / 视频流,而观众只能接收语音 / 视频,无法发送。
“rtc”: 通信场景,用于常见的一对一通话或群聊,频道中的任何用户都可以收发语音 / 视频流。
Note::
1)1 个频道只能支持 1 种使用场景,以第 1 个进入频道的用户决定频道的使用场景。
2)我们建议 1 个 channel 永远只使用 1 种使用场景,不要出现 1 个 channel 在今天使用通信场景,明天使用直播场景的情况,如果需更换场景,请使用新的 channel 。
3)通信场景 ( “rtc” ) 不允许进入过多用户,在通信场景 ( “rtc” ) 下默认 1 个频道允许 100 人进入,如果需要调整用户数请联系 cloudHub 商务人员。
4)通过 createClient 时指定 mode 来指定频道的使用场景。

joinChannel

方法作用: 加入 CloudHubRTC 频道。
该方法让用户加入 CloudHubRTC 频道。调用该方法加入频道成功后,本地会触发 Client.on(“signal-connected”) 和 Client.on(“signal-connection-state-change”) 回调。
通信场景下,远端会触发 Client.on(“peer-join”) 回调。
直播场景下,加入频道的用户角色是主播则远端将会触发 Client.on(“peer-join”) 回调,如果是观众则远端不会触发 Client.on(“peer-join”) 回调。

joinChannel(token: string | null, channelId: string, uid: string | null, options?: object, onSuccess?: function, onFailure?: function): void

// example:
client.joinChannel(<token>, "1024", "userid", {}, function(uid) {
  console.log("client" + uid + "joined channel");
  // Create a local stream
  //……
}, function(err) {
  console.error("client join failed", err);
  // Error handling
});
名称类型描述
tokenstring安全要求不高: 将参数值设为 null/undefined。
安全要求高:传入从您的服务端获得的 Token。
Note:
1. cloudHub 建议您使用有效的 token(安全要求高)来加入频道。
2. 关于 token 的生成,请看 “token 生成” 文档。
3. 如果您需要使用有效的 token(安全要求高)来加入频道,请联系 cloudHub 的商务人员开启。
4. token 存在过期时间,收到 Client.on(‘token-privilege-will-expire’)回调后进行更新 Token。
5. token 存在过期时间,收到 Client.on(‘request-token’)回调后请使用新的 token 加入频道。
channelIdstring标识通话频道的字符串,支持的字符集范围如下:
* 26 个小写字母 a-z
* 26 个大写字母 A-Z
* 10 个数字 0-9
* 特殊字符:-_
Note: 我们建议 1 个 channel 永远只使用 1 种使用场景,不要出现 1 个 channel 在今天使用通信场景,明天使用直播场景的情况,如果需要更换场景,请使用新的 channel。
uidstring指定用户的 ID。 安全要求高:传入从您的服务端获得的 Token。
Note: ASCII 字符,需保证唯一性。如果不指定(即设为 null/undefined)或设为 0,SDK 会自动分配一个,并在 onSuccess 回调方法中返回。
optionsobject配置项,有如下配置:
userproperties?:object 用户自定义属性。
例如传 nickname 表示昵称:{nickname:“我的名字”}
onSuccessfunction方法调用成功时执行的回调函数,回调携带参数为 uid uid:string 用户 id
onFailurefunction失败回调,回调参数 errflag、message。
* message: 错误信息。
* errflag: 错误标识,可能的错误如下:
  1. “CHANNEL_NO_SPECIFICATION”: 参数 channel 不符合规范,含有不支持的字符。
  2. “INVALID_ARG”: 无效的参数。
  3. “CLIENT_NOT_INIT”: 没有初始化 Client。
  4. “EMPTY_SIGNAL_ADDR_LIST”: 没有可连接的信令服务器地址。
  5. “JOIN_CHANNEL_FAIL”: 加入频道失败。
  6. “JOIN_AUTH_FAIL”: 加入频道验证权限失败。
  7. “CHANNEL_MODE_MISMATCH”:频道模式不匹配,比如:频道场景是通话场景 (mode 为 live),但是 CreateClient 时传成了直播场景 (mode 为 rtc)。
  8. “ERR_INVALID_APP_ID”: 无效的 appId。
  9. “ERR_INVALID_TOKEN”: 无效的 token。
  10. “ERR_TOKEN_EXPIRED”: token 已过期。
  11. “ERR_ENTERPRISE_CONCURRENT_POINTS_EXCEED_LIMIT”: 企业并发点数超限。
  12. “ERR_REFUSED”: 其它错误。

Note:

leaveChannel

方法作用: 离开 CloudHubRTC 频道。 该方法让用户离开 CloudHubRTC 频道。 调用该方法离开频道时,本地会触发 Client.on(“signal-connection-state-change”) 回调。 通信场景下,远端会触发 Client.on(“peer-leave”) 回调。 直播场景下,离开频道的用户角色是主播则远端将会触发 Client.on(“peer-leave”) 回调,如果是观众则远端不会触发 Client.on(“peer-leave”) 回调。

leaveChannel(): void

// example:
client.leaveChannel()

音视频

publish

方法作用: 发布本地音视频流。 该方法将本地音视频流发布至服务器。
发布音视频流之后,本地会触发 Client.on(“stream-published”) 回调;远端会触发 Client.on(“stream-added”) 回调。
直播场景下,用户的角色如果是观众 (audience),在调用 publish 的时候会自动切换成主播(host) 角色, 本地会触发 Client.on(“client-role-changed”) 回调, 远端会触发 Client.on(“peer-join”)。

publish(stream: Stream, options?:object, onFailure?: function): void

// example:
client.publish(stream, {}, function(err) {
  console.log(err);
  // 处理发布失败的代码逻辑
})
名称类型描述
streamStream本地音视频流对象
optionsobject预留配置项, 目前传 {} 即可
onFailurefunction方法调用失败时执行的回调函数, 可能的错误如下:
* “STREAM_ALREADY_PUBLISHED”: 该 stream 已经发布。
* “INVALID_LOCAL_STREAM”: 传入的 stream 格式非法。
* “STREAM_NOT_INITED”: 本地流没有初始化完成。
* “SIGNAL_NOT_CONNECT”: 当前不在频道中,可能是没有加入频道或者是网络波动导致暂时断开连接。
* “PUBLISH_STREAM_LIMIT”: 发布的音视频最大路数超过限制。
* “PUBLISH_NOT_PERMISSION”: 没有权限发布。
* “PUB_SETREMOTEDESC_FAIL”: 浏览器 setRemoteDescription 失败,关于 setRemoteDescription
Note: 会触发 Client.on(‘stream-publish-failure’) 回调,回调触发则表示此流发布失败,sdk 不会自动重新发布。

Note:

subscribe

方法作用: 订阅远端音视频流。 该方法从服务器端接收远端音视频流。 订阅远端音视频流之后,本地会触发 Client.on(“stream-subscribed”) 回调。 如果订阅流中包含音频,还会触发 Client.on(“first-audio-frame-decode”) 回调;如果订阅流中包含视频,还会触发 Client.on(“first-video-frame-decode”) 回调。

subscribe(stream: Stream, options?:object, onFailure?: function): void

// example:
client.subscribe(stream, {}, function(err) {
    console.error("stream subscribe failed", err);
    // 处理订阅失败的代码逻辑
})
名称类型描述
streamStream远端音视频流对象
optionsobject预留配置项, 目前传 {} 即可
onFailurefunction方法调用失败时执行的回调函数,以下列举一些常见的错误:
  1. “STREAM_ALREADY_SUBSCRIBED”: 该 stream 已经订阅。
  2. “STREAM_NOT_YET_PUBLISHED”: 指定的 stream 还没有发布。
  3. “INVALID_REMOTE_STREAM”: 传入的 stream 格式非法。
  4. “SIGNAL_NOT_CONNECT”: 当前不在频道中,可能是没有加入频道或者是网络波动导致暂时断开连接。
  5. “SUBSCRIBE_NOT_PERMISSION”: 没有权限订阅。
  6. “SUB_SETREMOTEDESC_FAIL”: 浏览器 setRemoteDescription 失败, 关于 setRemoteDescription
Note: 会触发 Client.on(‘stream-subscribe-failure’) 回调,回调触发则表示此订阅失败,sdk 不会自动重新订阅。

Note:

unpublish

方法作用: 取消发布本地音视频流。
该方法取消发布本地音视频流。取消发布音视频流之后,远端会触发 Client.on(“stream-removed”) 回调,本地会触发 Client.on(“stream-unpublished”) 回调。
直播场景下,用户的角色如果是主播 (host),在调用 unpublish 后如果没有本地流发布,则会自动切换成观众(audience) 角色, 本地会触发 Client.on(“client-role-changed”) 回调, 远端会触发 Client.on(“peer-leave”)。

unpublish(stream: Stream, options?:object, onSuccess?: function, onFailure?: function): void

// example:
client.unpublish(stream, {}, function(){
  console.log("unpublish success");
  }, function(err) {
    console.log(err);
    //……
})
名称类型描述
streamStream本地音视频流对象。
optionsobject预留配置项, 目前传 {} 即可
onSuccessfunction取消发布成功。
onFailurefunction方法调用失败时执行的回调函数,以下列举一些可能的错误:
  1. “STREAM_NOT_YET_PUBLISHED”: 指定的 stream 还没有发布。
  2. “INVALID_LOCAL_STREAM”: 传入的 stream 格式非法。
  3. “SIGNAL_NOT_CONNECT”: 当前不在频道中,可能是没有加入频道或者是网络波动导致暂时断开连接。

unsubscribe

方法作用: 取消订阅远端音视频流。
该方法取消接收远端音视频流。

unsubscribe(stream: Stream, options?:object, onSuccess?: function, onFailure?: function): void

// example:
client.unsubscribe(stream, {}, function(){
console.log("unsubscribe success");
}, function(err) {
    console.log(err);
    //……
})
名称类型描述
streamStream远端音视频流对象。
optionsobject预留配置项, 目前传 {} 即可
onSuccessfunction取消订阅成功。
onFailurefunction方法调用失败时执行的回调函数,以下列举一些可能的错误:
  1. “INVALID_REMOTE_STREAM”: 传入的 stream 对象格式非法。
  2. “SIGNAL_NOT_CONNECT”: 当前不在频道中,可能是没有加入或者是网络波动导致暂时断开连接。
  3. “NO_SUCH_REMOTE_STREAM”: 没有找到要取消订阅的远端流。
  4. “STREAM_NOT_YET_SUBSCRIBED”: 该 stream 没有订阅。

getRemoteAudioStats

方法作用: 获取远端订阅流的音频统计数据。

getRemoteAudioStats(onCallback: function): void

// example:
client.getRemoteAudioStats((remoteAudioStatsMap) => {
  console.log("remoteAudioStatsMap", remoteAudioStatsMap);
});

enableAudioVolumeIndicator

方法作用: 启用说话者音量提示。 该方法允许 SDK 定期返回已发布 / 已订阅的流的音量提示。 启用该方法后,无论频道中有没有人说话,SDK 都会每 interval 毫秒触发 “stream-volume-indicator” 回调返回音量提示。 只返回流类型为 video 的音量提示(即:stream.getType() === “video”)

enableAudioVolumeIndicator(interval?:number): void

// example:
client.enableAudioVolumeIndicator(2000); // 每两秒触发 "volume-indicator" 回调
client.on("stream-volume-indicator", function(evt){
    console.log("stream-volume-indicator", evt);
});
名称类型描述
intervalnumber多长时间促发 “stream-volume-indicator” 回调返回音量提示,单位为毫秒,缺省为 300。
Note: 当 interval 为 - 1 时表示不启用说话者音量提示。

getLocalAudioStats

方法作用: 获取本地发布流的音频统计数据。

getLocalAudioStats(onCallback: function): void

//example:
client.getLocalAudioStats((localAudioStats) => {
  console.log("localAudioStats:", localAudioStats);
});
名称类型描述
onCallbackfunction包含本地发布流的音频统计数据的回调,回调参数携带 LocalAudioStatsMap。
LocalAudioStatsMap: 详情查看 CloudHubRTC 数据对象文档 LocalAudioStatsMap 说明

Note:

getLocalVideoStats

getLocalVideoStats(onCallback: function): void

//example:
client.getLocalVideoStats((localVideoStats) => {
    console.log("localVideoStats:", localVideoStats);
});

方法作用: 获取本地发布流的视频统计数据。

名称类型描述
onCallbackfunction包含本地发布流的视频统计数据的回调,回调参数携带 LocalVideoStatsMap。
LocalVideoStatsMap: 详情查看 CloudHubRTC 数据对象文档的 LocalVideoStatsMap 说明

Note:

getRemoteVideoStats

方法作用: 获取远端订阅流的视频统计数据。

getRemoteVideoStats(onCallback: function): void
// example:
client.getRemoteVideoStats((remoteVideoStatsMap) => {
  console.log("remoteVideoStatsMap", remoteVideoStatsMap);
});
名称类型描述
onCallbackfunction包含远端订阅流的音频统计数据的回调,回调参数携带 RemoteVideoStatsMap。RemoteVideoStatsMap: 详情查看 CloudHubRTC 数据对象文档的 RemoteVideoStatsMap 说明

Note:

enableMultiStream

方法作用: 是否启用多流模式。

enableMultiStream(bEnable:boolean): void

// example:
client.enableMultiStream(true)
名称类型描述
bEnableboolean是否启用多流模式。
  1. true: 使用多流模式 < br/>  2. false: 使用单流模式

Note:

消息

sendChatMsg

方法作用: 发送聊天消息。 接收到聊天消息后会触发 Client.on(“recv-chat-msg”) 回调。

sendChatMsg(message:string, toId: string, extraData?:object): void

// example:
client.sendChatMsg("this is chat msg", CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER, {"key1":"value1", "key2":"value2"});
名称类型描述
messagestring发送的聊天消息。
toIdstring指定发送给谁,缺省为 YSRTC.CONSTANTS.MSG_TO_ALLUSER。

Note:

pubMsg

方法作用: 发送信令消息。 接收到 “发送信令消息” 后会触发 Client.on(“recv-pub-msg”) 回调。

pubMsg(msgName: string, msgId:string, toId:string, data:object, save?:boolean,associatedMsgID?:string): void

//example:
client.pubMsg("msgname", "msgid", CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER, {testdata: 1}, true);
名称类型描述
msgNamestring信令名字。
msgIdstring信令消息 ID。
toIdstring指定发送给谁,缺省为 CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER。toId 可能取值请见 “常量声明以及补充说明——发送消息
dataobject信令数据。
saveboolean信令是否保存,缺省为 false。
Note:1. 如果消息不保存,则不需要使用 delMsg 删除消息 2. 如果消息不保存,消息只通知给频道里面的人,之后进来的人不会收到这条消息
associatedMsgIDstring关联的消息 ID, 缺省为 “"。
Note:1. 假设 a 消息关联了一条 msgId 为"parent-msg"的消息,那么当"parent-msg"消息被删除后,a 消息也被删除,信令服务器会推送"parent-msg"消息被删除,但是不会推送 a 消息被删除(即:删除父节点的消息只会推送父节点被删除的消息,不会推送子节点被删除的消息,需要客户端自己收到父节点的删除消息通知后自己移除子节点的消息)。如:msgId 为"child-msg"关联 msgId 为"parent-msg”,删除 msgId 为"parent-msg"的消息的消息时, 客户端会收到 msgId 为"parent-msg"的删除消息通知 (即:会触发的 Client.on(“recv-del-msg”) 回调),而不会收到 msgId 为"child-msg" 的删除消息通知。

Note: 直播场景中建议只让部分人 (主播或者被授予权限的观众等) 能够发 pubMsg,而不要让所有人都能主动发 pubMsg【 比如: 10 万人的频道,观众有 9.99 万人,那么这些人不应该有主动发 pubMsg 的能力,而应该让主播授权给某个观众,这个观众才能发 pubMsg 】。

delMsg

方法作用: 删除信令消息。接收到 “删除信令消息” 后会触发 Client.on(“recv-del-msg”) 回调。

delMsg(msgName: string, msgId:string, toId:string): void

// example:
client.delMsg("msgname", "msgid", CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER);
名称类型描述
msgNamestring信令名字。
msgIdstring信令消息 ID。
toIdstring指定发送给谁,缺省为 CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER。
toId 可能取值请见 “常量声明以及补充说明——发送消息”

Note: 直播场景中建议只让部分人 (主播或者被授予权限的观众等) 能够发 delMsg,而不要让所有人都能主动发 delMsg【比如: 10 万人的频道,观众有 9.99 万人,那么这些人不应该有主动发 delMsg 的能力,而应该让主播授权给某个观众,这个观众才能发 delMsg】。

信令

getSignalConnectionState

getSignalConnectionState(): string

方法作用: 获取 SDK 与信令服务器的连接状态。 调用该方法会返回 SDK 与信令服务器的连接状态。 SDK 与信令服务器的连接状态,共有以下 3 种:

Note:

名称类型描述
onCallbackfunction包含远端订阅流的音频统计数据的回调,回调参数携带 RemoteAudioStatsMap。
RemoteAudioStatsMap: 详情查看 “CloudHubRTC 数据对象文档” 的 RemoteAudioStatsMap 说明

Note:

用户

evictUser

方法作用: 将用户踢出频道。

evictUser(uid:string, reason?:string): void
// example:
client.evictUser("uid", "reason");
名称类型描述
uidstring要踢出频道的用户 id
reasonstring踢出频道的原因

setProperty

方法作用: 改变用户的自定义用户属性。 该方法改变某用户属性,并将属性变化通知给频道中的指定用户,指定用户会收到 Client.on(“user-properties-update”) 回调。

setProperty(uid: string, properties: object, toId?: string): void

// example:
client.setProperty("userid", {key1:value1}, CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER);
名称类型描述
uidstring被改变属性的用户 ID
propertiesobject改变的用户属性对象。
toIdstring指定发送给谁,缺省为 CloudHubRTC.CONSTANTS.MSG_TO_ALLUSER。toId 可能取值请见 “常量声明以及补充说明——发送消息”

Note:

setClientRole

方法作用: 设置用户角色。 本方法仅适用于直播场景。 直播场景下,可以调用本方法设置用户角色。 在加入频道前,用户可以通过本方法设置自己的角色。 在加入频道后,用户可以通过本方法切换角色:

如果你在加入频道后调用该方法切换用户角色,切换成功后,本地会触发 Client.on(“client-role-changed”) 回调;远端会触发 Client.on(“peer-join”) 或者 Client.on(“peer-leave”) 回调。

setClientRole(role:string, onCallback?:function): void

// example:
client.setClientRole("host", function(errinfo) {
  if (!errinfo) {
    console.log("setClientRole success");
  } else {
    console.log("setClientRole error", errinfo);
  }
});
名称类型描述
rolestring用户角色,角色有 “audience”
onCallbackfunction回调函数,函数携带参数 errinfo,如果 errinfo 为 null/undefined 则表示设置成功,否则设置失败。

Note: 通信场景(mode 设置为 rtc)无法使用本方法,默认所有用户都是 host 角色。

录制

startServerRecord

方法作用: 开始服务器端录制。 录制功能需要联系 cloudHub 的商务人员开启,如果没有开启,调用此接口也无法录制。 会触发 Client.on(“server-record-state-change”) 回调。

startServerRecord(config?:object): void
// example:
client.startServerRecord({});
名称类型描述
configobject录制配置项,配置项如下:
   recordChat?:boolean 是否录制聊天消息,缺省为 false。

Note: 连续调用两次 startServerRecord(即没调用 stopServerRecord 就再次调用 startServerRecord)将以第 1 次调用为准。

stopServerRecord

方法作用: 停止服务器端录制。 会触发 Client.on(“server-record-state-change”) 回调。

stopServerRecord(): void
// example:
client.stopServerRecord();

pauseServerRecord

方法作用: 暂停服务器端录制。

会触发 Client.on(“server-record-state-change”) 回调。

pauseServerRecord(): void

//  example:
client.pauseServerRecord();
名称类型描述
urlstring推流地址。

resumeServerRecord

方法作用: 恢复服务器端录制。 会触发 Client.on(“server-record-state-change”) 回调。

resumeServerRecord(): void

//  example:
client.resumeServerRecord();
名称类型描述
urlstring推流地址。

推流

addPublishStreamUrl

方法作用: 增加旁路推流地址。

addPublishStreamUrl(url:string): void

//  example:
client.removePublishStreamUrl("xxxx");
名称类型描述
urlstring推流地址。

removePublishStreamUrl

方法作用: 删除旁路推流地址。

removePublishStreamUrl(url:string): void
名称类型描述
urlstring推流地址。

setLiveTranscoding

方法作用: 设置直播推流转码。

setLiveTranscoding(liveTranscoding:LiveTranscoding): void

//  example:
var liveTranscoding = {
    "width": 640,
    "height": 360,
    "videoBitrate": 400,
    "videoFramerate": 15,
    "audioSampleRate": 48000,
    "audioBitrate": 48,
    "audioChannels": 1,
    "audioCodecProfile": 0,
    "videoGop": 30,
    "videoCodecProfile": 100,
    "streamCount": 1,
    "backgroundColor": 0x000000,
    "transcodingStreams": [{
      "x": 0,
      "y": 0,
      "width": 640,
      "height": 360,
      "zOrder": 0,
      "uid": "123456",
      "type": "video",
      "sourceID": "default_source_id"
    }]
  };
client.setLiveTranscoding(liveTranscoding);
名称类型描述
liveTranscodingLiveTranscoding(object)直播转码的设置。 关于 LiveTranscoding 详见 LiveTranscoding 说明文档 Note: 每次调用 setLiveTranscoding 接口传入的 liveTranscoding 都会覆盖之前的 liveTranscoding。

startChannelMediaRelay

方法作用: 开始跨频道媒体流转发。

startChannelMediaRelay(channelMediaRelayConfig:ChannelMediaRelayConfig): void

//  example:
var channelMediaRelayConfig = client.produceChannelMediaRelayConfig();
  channelMediaRelayConfig.setDestChannelInfo(
    "destChannelName",
    {
      uid: "Relay_myChannelName_Requester_myuid"
    }
  );
client.startChannelMediaRelay(channelMediaRelayConfig);
名称类型描述
channelMediaRelayConfigChannelMediaRelayConfig跨频道媒体转发配置类实例。关于 ChannelMediaRelayConfig 详见 ChannelMediaRelayConfig说明Note: channelMediaRelayConfig 实例调用 produceChannelMediaRelayConfig 生成。

Note: 相关流转发状态的事件请看 client.on(“channel-media-relay-state”) 的事件描述

updateChannelMediaRelay

方法作用: 更新跨频道媒体流转发。

updateChannelMediaRelay(channelMediaRelayConfig:ChannelMediaRelayConfig): void

// example:
channelMediaRelayConfig.setDestChannelInfo(
    "destChannelName2",
    {
        uid: "Relay_myChannelName_Requester_myuid"
    }
);
client.updateChannelMediaRelay(channelMediaRelayConfig);
名称类型描述
channelMediaRelayConfigChannelMediaRelayConfig跨频道媒体转发配置类实例。 关于 ChannelMediaRelayConfig 详见 ChannelMediaRelayConfig 说明"。 Note: channelMediaRelayConfig 实例调用 produceChannelMediaRelayConfig 生成。

Note: 相关流转发状态的事件请看 client.on(“channel-media-relay-state”) 的事件描述

stopChannelMediaRelay

方法作用: 停止跨频道媒体流转发。

stopChannelMediaRelay(): void

// example:
client.stopChannelMediaRelay();

Note: 相关流转发状态的事件请看 client.on(“channel-media-relay-state”) 的事件描述

produceChannelMediaRelayConfig

方法作用: 生产跨频道媒体转发配置实例。关于 ChannelMediaRelayConfig 详见 ChannelMediaRelayConfig 说明

produceChannelMediaRelayConfig(): void

// example:
var channelMediaRelayConfig = client.produceChannelMediaRelayConfig();