Video SDK for H5 API手册

API 文档

以下是完整的 API 文档。

类 (class)

YMRTC

游密Webrtc SDK

RTCClient
Stream

流对象

YMRTC

游密Webrtc SDK

类型: 全局类(class)

YMRTC.createClient(config) ⇒ RTCClient

该方法用于创建客户端,在每次会话里仅调用一次。

类型: 静态方法(function),来自 YMRTC

参数 类型 描述
config ClientConfig

定义客户端的属性

示例

YMRTC.createClient(config)

YMRTC.checkSystemRequirements() ⇒ boolean

该方法检查 Web SDK 对正在使用的浏览器的适配情况。 你需要在创建音视频对象 (createClient)之前调用该方法,用以检查 Web SDK 对正在使用的浏览器的适配情况 浏览器类型和版本均会影响返回结果,部分 Chromium 内核的浏览器(如 QQ 浏览器等),我们未做全量测试,如需使用,可以进行尝试。

类型: 静态方法(function),来自 YMRTC
返回值: boolean -

  • 是否支持

示例

const support = YMRTC.checkSystemRequirements()

YMRTC.getDevices(callback, [callback_Error]) ⇒ void

该方法枚举可用的媒体输入/输出设备,比如麦克风、摄像头、耳机等。 调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的媒体设备以及设备信息。

类型: 静态方法(function),来自 YMRTC

参数 类型 描述
callback GetDevicesSuccCb

成功回调

[callback_Error] GetDevicesFailCb

失败回调

RTCClient

类型: 全局类(class)

new RTCClient(config)

私有

参数 类型 描述
config ClientConfig

构造参数

rtcClient.init(appkey, [onSuccess], [onFaialure]) ⇒ void

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

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
appkey string

项目appkey

[onSuccess] function

可选,成功回调, () => void;

[onFaialure] function

可选,失败回调, (err: string) => void

示例

client.init('appkey', () => {}, (err) => {})

rtcClient.join(token, channel, uid, [optionalInfo], [onSuccess], [onFailure]) ⇒ void

加入频道 调用该方法加入频道时,本地会触发 client.on("connected") 和 client.on("connection-state-change") 回调; 通信场景下的用户和直播场景下的主播加入频道后,远端会触发 client.on("peer-online") 回调

类型: 实例方法(function),来自 RTCClient

参数 类型 默认值 描述
token string

token

channel string

频道

uid string | null

用户id,不填则sdk创建随机的uid

[optionalInfo] string "''"

可选信息

[onSuccess] function

可选;成功回调, (uid: number

string) => void

[onFailure] function

可选;失败回调, (err: string) => void

示例

client.join('token', 'channel', 'uid', '', (uid) => {}, (err) => {})

rtcClient.leave([onSuccess], [onFailure]) ⇒ void

离开频道 调用该方法离开频道时,本地会触发 Client.on("connection-state-change") 回调; 通信场景下的用户和直播场景下的主播离开频道后,远端会触发 Client.on("peer-leave") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
[onSuccess] function

可选;成功回调;() => void;

[onFailure] function

可选;失败回调;(err: string) => void;

示例

client.leave(() => {}, (err) => {});

rtcClient.createStream(spec) ⇒ Stream

该方法创建并返回音视频流对象。

类型: 实例方法(function),来自 RTCClient
返回值: Stream -

  • 流对象

参数 类型 描述
spec StreamSpec

定义音视频流对象的属性,详见 {StreamSpec}。

rtcClient.publish(stream, onFailure) ⇒ void

发布本地音视频流 发布音视频流之后,本地会触发 client.on("stream-published") 回调;远端会触发 client.on("stream-added") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
stream Stream

要被发布的本地音视频流对象

onFailure function

可选;失败回调;(err: string) => void

示例

client.publish(stream, (err) => {});

rtcClient.unpublish(stream, [onFailure]) ⇒ void

取消发布本地音视频流 该方法取消发布本地音视频流。 取消发布音视频流之后,本地会触发 client.on("stream-unpublished") 回调,远端会触发 client.on("stream-removed") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
stream Stream

要取消发布的本地音视频流对象

[onFailure] function

可选;失败回调;(err: string) => void;

示例

client.unpublish(stream, (err) => {});

rtcClient.subscribe(stream, [options], [onFailure])

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

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
stream Stream

要取消订阅的远端音视频流

[options] SubscribeOptions

可选;选项参数;默认订阅音视频流

[onFailure] function

可选;失败回调;(err) => void;

示例

// 基本用法
client.subscribe(stream, (err) => {});

示例

// 高级用法
client.subscribe(stream, { video: true, audio: true }, (err) => {});

rtcClient.unsubscribe(stream, [onFailure]) ⇒ void

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

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
stream Stream

要取消订阅的远端流

[onFailure] function

可选;失败回调;(err: string) => void; 方法调用失败时执行的回调函数,常见的错误如下:

  • "INVALID_REMOTE_STREAM": 传入的 stream 对象格式非法。
  • "INVALID_OPERATION": 当前不在频道中,可能是没有加入或者是网络波动导致暂时断开连接。
  • "NO_SUCH_REMOTE_STREAM": 没有找到要取消订阅的远端流。
  • "UNSUBSCRIBE_STREAM_FAILED": 取消订阅失败,一般是取消订阅时连接断开。

示例

client.unsubscribe(stream, (err) => {});

rtcClient.setClientRole(role, [callback]) ⇒ void

设置用户角色 本方法仅适用于直播场景。 直播场景下,可以调用本方法设置用户角色。 在加入频道前,用户可以通过本方法设置自己的角色。 在加入频道后,用户可以通过本方法切换角色: 用户在调用 publish 的时候会自动切换成 host 角色,调用 unpublish 的时候会自动切换为 audience 角色。 如果已经调用了 publish,调用本方法将用户角色设置为 audience,会自动进行 unpublish。 如果你在加入频道后调用该方法切换用户角色,切换成功后,本地会触发 client.on("client-role-changed") 回调;远端会触发 client.on("peer-online") 或者 client.on("peer-leave") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
role string

角色, 'host'或'audience'

[callback] function

可选;回调;(err?: string

null) => void;

示例

client.setClientRole('host', (err) => {
    if (err) {
        // 失败
    } else {
        // 成功
    }
});

rtcClient.startLiveStreaming(url) ⇒ void

新建直播流 该方法新建直播流 推流开始后本地会触发 client.on("liveStreamingStarted") 回调。如果推流失败会触发 client.on("liveStreamingFailed") 回调。

类型: 实例方法(function),来自 RTCClient

参数 描述
url

接收推流的地址例如: rtmp://xxxxxxxxx

示例

client.setLiveTranscoding(<coding>);
client.startLiveStreaming(<url>)

rtcClient.setLiveTranscoding(coding) ⇒ void

设置直播推流转码 调用该方法更新转码设置后本地会触发 client.on("liveTranscodingUpdated") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
coding LiveTranscoding

转码设置

rtcClient.stopLiveStreaming(url) ⇒ void

删除直播流 该方法停止并删除直播流。推流停止后本地会触发 client.on("liveStreamingStopped") 回调。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
url string

要停止的流url

rtcClient.getRecordingDevices(callback) ⇒ void

枚举音频输入设备 该方法枚举可用的音频输入设备,比如麦克风。 调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的音频输入设备。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
callback function

(devices: MediaDeviceInfo[]): void

示例

client.getRecordingDevices((devices) => {});

rtcClient.getPlayoutDevices(callback) ⇒ void

枚举音频输出设备

该方法枚举可用的音频输出设备,比如扬声器。

调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的音频输出设备。

类型: 实例方法(function),来自 RTCClient

参数 类型 描述
callback function

回调 (devices: MediaDeviceInfo[]) => void

rtcClient.getCameras(callback) ⇒ void

枚举视频输入设备 该方法枚举可用的视频输入设备,比如摄像头。 调用成功后 SDK 会通过 MediaDeviceInfo 对象返回可用的视频输入设备。

类型: 实例方法(function),来自 RTCClient

参数 类型
callback getCameraCallback

"event:stream-added"

该回调通知应用远端音视频流已添加。 如果用户加入频道时频道内已经有其他用户,也会收到该回调报告已经存在的远端流。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型, 为 stream-added

msg string

消息

reason string

原因

stream Stream

远端流

"event:stream-removed"

该回调通知应用已删除远端音视频流,即对方调用了 client.unpublish

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,为 stream-removed

msg string

消息

reason string

原因

stream Stream

远端流

"event:peer-online"

该回调提示有远端用户/主播加入频道。

  • 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
  • 直播场景下,该回调提示有主播加入了频道,并返回该主播的 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。建议连麦主播不超过 20。

该回调在如下情况下会被触发:

  • 通信场景的远端用户/直播场景的远端主播调用 client.join 方法加入频道。
  • 直播场景的远端观众加入频道后调用 client.setClientRole 将用户角色改变为主播。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
uid string

用户ID

"event:peer-leave"

该回调通知应用有远端用户离线。 在直播场景中,只有角色为主播的用户会触发该回调。

离线包括以下情况:

  • 用户离开频道
    • 正常离开:用户会收到类似“再见”的消息,接收此消息后,判断对方离开频道。
    • 超时掉线:在 20 秒内,用户没有收到对方的任何数据包,则判定为对方掉线。在网络较差的情况下,有可能会误报。建议使用信令系统来做可靠的掉线检测。
  • 用户角色从主播变为观众

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
reason string

用户离线原因

  • "Quit": 用户调用了 Client.leave 主动离开频道。
  • "BecomeAudience": 用户角色从主播切换为观众。

示例

client.on("peer-leave", function(evt) {
  var uid = evt.uid;
  var reason = evt.reason;
  console.log("remote user left ", uid, "reason: ", reason);
});

"event:unmute-audio"

该回调通知应用对方用户在语音通话中将自己的声音打开。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
uid string

用户id

示例

client.on("unmute-audio", function(evt) {
   var uid = evt.uid;
   console.log("unmute audio:" + uid);
});

"event:mute-audio"

该回调通知应用对方用户在语音通话中将自己的声音关闭。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
uid string

用户id

示例

client.on("mute-audio", function(evt) {
   var uid = evt.uid;
   console.log("mute audio:" + uid);
});

"event:unmute-video"

该回调通知应用对方用户在语音通话中将自己的视频打开。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
uid string

用户id

示例

client.on("unmute-video", function(evt) {
   var uid = evt.uid;
   console.log("unmute video:" + uid);
});

"event:mute-video"

该回调通知应用对方用户在语音通话中将自己的视频关闭。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
uid string

用户id

示例

client.on("mute-video", function(evt) {
   var uid = evt.uid;
   console.log("mute video:" + uid);
});

"event:client-role-changed"

该回调通知本地用户的角色发生改变。

类型: 事件,由 RTCClient 触发
属性

类型 描述
role

角色,'host'或'audience'

示例

client.on("client-role-changed", function(evt) {
    console.log("client-role-changed", evt.role);
});

"event:stream-published"

该回调通知应用本地音视频流已发布。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型, 值为stream-published

proxy string

是否为代理

stream Stream

本地流

示例

client.on("stream-published", function(evt) {
  console.log("local stream published");
  //……
});

"event:stream-unpublished"

该回调通知应用本地音视频流已取消发布。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为stream-unpublished

stream Stream

本地流

示例

client.on("stream-unpublished", function(evt) {
  console.log("local stream unpublished");
  //……
});

"event:stream-subscribed"

该回调通知应用已接收远端音视频流。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为stream-subscribed

msg string

消息

reason string

原因

stream Stream

远端流

示例

client.on("stream-subscribed", function(evt) {
  var stream = evt.stream;
  console.log("new stream subscribed ", stream.getId());
  // Play the stream.
  //……
});

"event:stream-updated"

该回调表示订阅流的音视频轨道发生变化。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为stream-updated

stream Stream

远端流

video boolean

是否有视频

audio boolean

是否有音频

"event:connection-state-change"

该回调通知应用SDK 与服务器的连接状态发生改变

SDK 与服务器的连接状态共有以下 4 种:

  • DISCONNECTED:连接断开。该状态表示 SDK 处于以下任一阶段:
    • 调用 client.join 加入频道前的初始化阶段
    • 调用 client.leave 后的离开频道阶段
  • CONNECTING:正在连接中。在调用 client.join 或者连接中断自动重连的时候为此状态。
  • CONNECTED:已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因 网络断开或切换而导致 SDK 与服务器的连接中断,SDK 会自动重连,此时应用会收到该回调,通知网络状态由 CONNECTED 变为 CONNECTING。
  • DISCONNECTING:正在断开连接。在调用 Client.leave 的时候为此状态。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
curState string

当前的状态

示例

client.on("connection-state-change", function(evt) {
    console.log(evt.curState);
});

"event:reconnect"

该回调通知正在与服务器重新建立连接。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为reconnect

示例

client.on("reconnect", function() {
    console.log("reconnect");
});

"event:connected"

该回调通知与服务器已经成功建立连接。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为connected

示例

client.on("connected", function() {
   console.log("connected");
});

"event:error"

该回调通知应用有错误信息,需要进行处理,可能的错误如下:

  • reason 为 "SOCKET_DISCONNECTED" 表示此时 SDK 和服务器的连接因为网络原因断开了,SDK 会自动尝试重连。
  • reason 为其他错误,表示在连接断开后 SDK 自动重连阶段触发的错误。

类型: 事件,由 RTCClient 触发
属性

名称 类型 描述
type string

事件类型,值为error

示例

client.on("error", function(err) {
  console.log("Got error msg:", err.reason);
});

Stream

流对象

类型: 全局类(class)

  • Stream

    stream.play(elementId,[option],[onFailure])

    播放音视频流 该方法播放视频流或音频流。

    类型: 实例方法(function),来自 Stream
    完成回调: any - 播放成功
    拒绝回调: any - 播放失败

    参数 类型 描述
    elementId string

    需要播放的流ID

    [option] object

    可选;用于流播放的选项 Optional 参数如下:

    • "fit ": 设置视频播放时的显示模式,有 "cover" 和 "contain" 可以选择。
    • "muted?: boolean": 设置播放的流是否静音,muted 通常用于规避浏览器的自动播放策略,true:静音,false:非静音。
    [onFailure] function

    失败回调, (err: string) => void

    fit: "cover" | "contain" -

    • cover模式:优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。可以参考 CSS 属性中 object-fit 的 cover 选项。
    • contain模式:优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗,缩放后的视频四周会有一圈黑边。

    stream.resume()

    恢复音视频流播放 该方法一般在调用 Stream.play 之后,播放失败时调用。通常播放失败是由于浏览器策略阻止导致的。 该方法需用手势触发。详见处理浏览器的自动播放策略。

    类型: 实例方法(function),来自 Stream
    完成回调: any - 恢复成功
    拒绝回调: any - 恢复失败

    stream.stop() ⇒ void

    停止音视频流 调用该方法停止播放 Stream.play 播放的音视频流。

    类型: 实例方法(function),来自 Stream

    stream.isPlaying() ⇒ boolean

    返回音视频流当前是否在播放状态

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true:该音视频流正在渲染或播放。
    • false:该音视频流没有渲染。

    stream.unmuteAudio() ⇒ boolean

    启用音频轨道 该方法启用音频轨道。对本地流启用音频轨道后远端会触发 client.on("unmute-audio") 回调。

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true:启用音频轨道成功。
    • false:启用音频轨道失败,可能的原因包括没有音频、流未初始化、音频轨道已经启用等。

    stream.muteAudio() ⇒ boolean

    禁用音频轨道 该方法禁用音频轨道。 对于本地流,调用该方法会停止发送音频,远端会触发 Client.on("mute-audio") 回调。 对于远端流,调用该方法仍然会接收音频,但是会停止播放。 对于本地流,在 createStream 时将 audio 设置为 true 才可使用该方法。

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true:禁用音频轨道成功。
    • false:禁用音频轨道失败,可能的原因包括没有音频、流未初始化、音频轨道已经禁用等。

    stream.unmuteVideo() ⇒ boolean

    启用视频轨道 该方法启用视频轨道。对本地流启用视频轨道后远端会触发 Client.on("unmute-video") 回调。 Note 对于本地创建的流,在 createStream 时将 video 设置为 true 才可使用该方法。 视频轨道默认为开启状态。如果你调用了 muteVideo,可调用本方法启用视频。

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true:启用视频轨道成功。
    • false:启用视频轨道失败,可能的原因包括没有视频、流未初始化、视频轨道已经启用等。

    stream.muteVideo() ⇒

    禁用视频轨道 该方法禁用视频轨道。 对于本地流,调用该方法会停止发送视频,远端会触发 client.on("mute-video") 回调。 对于远端流,调用该方法仍然会接收视频,但是会停止播放。 对于本地创建的流,在 createStream 时将 video 设置为 true 才可使用该方法。

    类型: 实例方法(function),来自 Stream
    返回值:

    • true:禁用视频轨道成功。
    • false:禁用视频轨道失败,可能的原因包括没有视频、流未初始化、视频轨道已经禁用等。

    stream.hasAudio() ⇒ boolean

    获取音频 flag 该方法仅对本地流有效。

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true: 该音视频流对象中包含音频资源。
    • false: 该音视频流对象中不包含音频资源。

    stream.hasVideo() ⇒ boolean

    获取视频 flag 该方法仅对本地流有效。

    类型: 实例方法(function),来自 Stream
    返回值: boolean -

    • true: 该音视频流对象中包含视频资源。
    • false: 该音视频流对象中不包含视频资源。

    stream.getAudioTrack() ⇒ MediaStreamTrack | undefined

    获取音频轨道 该方法获取音视频流中的音频轨道,可与 replaceTrack 搭配使用。

    类型: 实例方法(function),来自 Stream
    返回值: MediaStreamTrack | undefined -

    • 如果音视频流中包含音频轨道,会以 MediaStreamTrack 对象返回。

    stream.getVideoTrack() ⇒ MediaStreamTrack | undefined

    获取视频轨道 该方法获取音视频流中的视频轨道,可与 replaceTrack 搭配使用。

    类型: 实例方法(function),来自 Stream
    返回值: MediaStreamTrack | undefined -

    • 如果音视频流中包含视频轨道,会以 MediaStreamTrack 对象返回。

    stream.getTracks() ⇒ Array.<MediaStreamTrack> | undefined

    获取音视频轨道

    类型: 实例方法(function),来自 Stream
    返回值: Array.<MediaStreamTrack> | undefined -

    • 如果音视频流存在且包含音频或视频流,会以 MediaStreamTrack数组返回

    stream.setAudioVolume(track, [onSuccess], [onFailure])

    替换音视频轨道 该方法可以替换本地音视频流中的音视频轨道。 本地流发布后,可以通过该方法切换摄像头或者切换麦克风和播放的 mp3 等。 新的音视频轨道可以通过 getUserMedia,MediaElement.captureStream 等方法获取。 被替换的音视频轨道会被强制停止。

    类型: 实例方法(function),来自 Stream

    参数 类型 描述
    track MediaStreamTrack

    要替换的track

    [onSuccess] function

    可选;成功回调;() => void;

    [onFailure] function
    • 可选;失败回调;(err: string) => void;
    • 方法调用失败的回调。常见的错误如下:
    • "INVALID_TRACK" 和 "INVALID_TRACK_TYPE": 新传入的 MediaStreamTrack 对象无法识别,请检查传入对象。
    • "MEDIASTREAM_TRACK_NOT_FOUND": 找不到替换对象,比如在纯音频流上尝试替换一个视频的 Track。
    • "NO_STREAM_FOUND": 找不到本地流对象,无法替换。

    示例

    - 支持 Chrome 65+,Safari 以及最新版 Firefox 浏览器。
    - 部分移动设备上该方法可能不生效。
    - Firefox 不支持在不同的麦克风之间切换音频轨道,可以支持切换麦克风和播放的音乐文件。
    - Safari 部分外接音频设备不支持此方法。
    - 订阅端无法知悉音视频轨道被替换。
    - 推荐使用 switchDevice 方法来切换媒体输入设备。

    stream.setScreenProfile(profile)

    设置屏幕属性 该方法设置屏幕共享时屏幕的显示属性,必须在 Stream.init 之前调用。

    • 该方法仅可对本地流调用。

    类型: 实例方法(function),来自 Stream

    参数
    profile

    stream.getId() ⇒ string

    获取音视频流 ID 该方法可以获取音视频流 ID。

    类型: 实例方法(function),来自 Stream
    返回值: string -

    • 流id

    自定义类型 (typedef)

    ClientConfig : Object

    定义 createClient 中的 config 参数的接口。

    StreamSpec : Object

    创建流的配置参数

    GetDevicesSuccCbvoid

    getDevices 成功回调

    GetDevicesFailCbvoid

    getDevices 失败回调

    LiveTranscoding : Object

    管理 CDN 直播推流转码的接口 调用 setLiveTranscoding 时可以通过该接口设置直播推流。

    NetworkType : Object

    网络类型

    • "bluetooth":蓝牙网络
    • "cellular":蜂窝移动数据网络
    • "ethernet":以太网
    • "none":没有网络
    • "wifi":Wi-Fi
    • "wimax":WiMax
    • "other":其他网络类型
    • "unknown":未知网络类型
    • "UNSUPPORTED":浏览器不支持获取网络类型

    该功能仅支持 Chrome 61 及以上版本,且无法保证兼容性

    SubscribeOptions : Object

    subscribe方法需要的options参数

    getCamerasCallbackvoid

    getCameras方法回调函数类型

    ClientConfig

    ClientConfig : Object

    定义 createClient 中的 config 参数的接口。

    类型: 全局自定义类型(typedef)

    参数 类型 默认值 描述
    mode string

    模式: 'rtc'或'live'

    codec string

    编码方式: 'vp8','h264'或'h264,vp8', 推荐默认填'h264,vp8',兼容性最好

    [debug] boolean false

    是否开启调试模式,调试模式会输出内部日志;默认false

    StreamSpec

    StreamSpec : Object

    创建流的配置参数

    类型: 全局自定义类型(typedef)

    参数 类型 默认值 描述
    [streamID] number | string ''

    请设置streamId 为用户ID, 用户id可以从RTCClient.join返回值获取到

    audio boolean

    表示流中是否包含音频轨道

    video boolean

    表示流中是否包含视频轨道

    [screen] boolean

    表示是否包含屏幕共享轨道

    [screenAudio] boolean false

    true: 共享时共享本地正在播放的声音 false: 默认值,共享时不要共享本地播放的声音

    GetDevicesSuccCb

    GetDevicesSuccCb ⇒ void

    getDevices 成功回调

    类型: 全局自定义类型(typedef)

    类型 描述
    Array.<MediaDeviceInfo>

    devices 设备类型

    GetDevicesFailCb

    GetDevicesFailCb ⇒ void

    getDevices 失败回调

    类型: 全局自定义类型(typedef)

    参数 类型 描述
    errStr string

    错误原因

    LiveTranscoding

    LiveTranscoding : Object

    管理 CDN 直播推流转码的接口 调用 setLiveTranscoding 时可以通过该接口设置直播推流。

    类型: 全局自定义类型(typedef)

    参数 类型 描述
    [width] number

    视频的宽

    [height] number

    视频的高

    [videoBitrate] number

    CDN直播流的视频码率(Kbps)

    [videoFramerate] number

    CDN直播流的帧率(fps)

    [audioSampleRate] number

    音频采样率 32000: 32kHz, 44100: (默认) 44.1kHz, 48000: 48kHz

    [audioBitrate] number

    CDN直播流的音频码率(Kbps)

    [audioChannels] number

    CDN直播流的声道数. 1: (默认)Mono, 2: 立体, 3, 4, 5声道

    NetworkType

    NetworkType : Object

    网络类型

    • "bluetooth":蓝牙网络
    • "cellular":蜂窝移动数据网络
    • "ethernet":以太网
    • "none":没有网络
    • "wifi":Wi-Fi
    • "wimax":WiMax
    • "other":其他网络类型
    • "unknown":未知网络类型
    • "UNSUPPORTED":浏览器不支持获取网络类型

    该功能仅支持 Chrome 61 及以上版本,且无法保证兼容性

    类型: 全局自定义类型(typedef)

    SubscribeOptions

    SubscribeOptions : Object

    subscribe方法需要的options参数

    类型: 全局自定义类型(typedef)

    参数 类型 描述
    [video] boolean

    可选;是否订阅视频

    [audio] boolean

    可选;是否订阅音频

    getCamerasCallback

    getCamerasCallback ⇒ void

    getCameras方法回调函数类型

    类型: 全局自定义类型(typedef)

    参数 类型 描述
    devices Array.<MediaDeviceInfo>

    视频输入设备列表