Video SDK for H5 API手册

API 文档

以下是完整的 API 文档。

类 (class)

YMRTC

YMRTC

自定义类型 (typedef)

InitConfig : Object

初始化 YIM 对象的配置

MediaConfig : Object

初始化 YIM 对象的配置

MediaStats : Object

初始化 YIM 对象的配置

YoumeMemberChangeUser : Object

member-change事件中的用户信息

YoumeOnReceiveMessage : Object

服务端广播的自定义消息

全局类YMRTC

YMRTC

类型: 全局类(class)

初始化

new YMRTC(config)

游密WEBRTCSDK

参数 类型 描述
config InitConfig

配置

订阅

暂停订阅

ymrtC.pauseSubscribe(userId, options) ⇒ Promise

异步请求暂停订阅一个成员的媒体流,暂停订阅后服务端将不会发送该用户的媒体流

类型: 实例方法(function),来自 YMRTC
完成回调: void - 暂停成功
拒绝回调: void - 暂停失败,可能该用户不存在会议中

参数 类型 描述
userId string

成员ID,可选参数,不传值则通过all的方式暂停订阅所有用户的流

options string

"audio"

"video" "all"; 暂停订阅类型,可选参数, all暂停订阅视频和音频流, video暂停订阅视频流, audio暂停订阅音频流, 不传值等价all

恢复订阅

ymrtC.resumeSubscribe(userId, options) ⇒ Promise

异步请求恢复订阅一个成员的媒体流,恢复订阅后服务端将会发送该用户的流媒体

类型: 实例方法(function),来自 YMRTC
完成回调: void - 恢复订阅成功
拒绝回调: void - 恢复订阅失败,可能该用户不在会议中

参数 类型 描述
userId string

成员ID,可选参数,不传值则通过all的方式恢复订阅所有用户的流

options string

"audio"

"video" "all"; 恢复订阅类型,可选参数, all恢复订阅视频和音频流, video恢复阅视频流, audio恢复订阅音频流, 不传值等价all

获取暂停订阅状态

ymrtC.getPauseSubscribeStatus(userId) ⇒ MediaSubscribePauseStatus

获取一个成员的暂停订阅状态

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

是否取处于消订阅该用户流媒体的状态, 默认处于未订阅状态

参数 描述
userId

成员ID

设备管理

获取设备列表

ymrtC.getDeviceList(config)

获取所有设备列表, 必须在login之后调用

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

参数 类型 描述
config object

可以设置{ audio: true, video: true } ,指定获取哪些类型的设备列表

获取设备列表

ymrtC.getAllDevices() ⇒

获取所有设备列表, 必须在login之后调用

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

'audioInput'获取音频输入设备,'videoInput'获取视频输入设备,'audioOutput'音频输出设备


设置声音输出设备

ymrtC.setOutputDevice(mediaObject, deviceID)

设置声音输出设备

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

参数 描述
mediaObject

video或者audio的html对象

deviceID

选择的设备id

获取屏幕共享源

ymrtC.screenRequestSourceList(type)

获取屏幕共享源(仅Electron)

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

参数 类型 描述
type Array.<string>

屏幕共享源类型数组,数组元素可选值 'screen'(整屏)、'window'(窗口)

 信令服务器连接

信令连接状态事件

"event:signaling.status:[status]"

信令连接状态改变。

类型: 事件,由 YMRTC 触发
分类: 信令服务器连接
属性

名称 类型 描述
status string

新的状态值,状态的取值:

  • disconnected: 未连接;
  • connecting: 正在尝试连接;
  • connected: 已连接;
  • reconnecting: (掉线后)重新连接;
  • ended: 用户主动结束了连接。

信令成功连接事件

"event:signaling.ready"

信令服务器已经成功连接,等同于事件 signaling.status:connected

类型: 事件,由 YMRTC 触发
分类: 信令服务器连接

成员控制

请求媒体流

ymrtC.requestUserStream(userId) ⇒ Promise

异步请求一个成员的媒体流(stream)。若未与此成员建立连接, 则等待连接完成,否则直接回调已存在的媒体流。 注意:中途媒体流对象可能会发生改变,请监听 “user.update-stream”事件以对界面做出相应的改变。

类型: 实例方法(function),来自 YMRTC
分类: 成员控制
完成回调: MediaStream - 得到的媒体流对象, 赋值给 <video><audio>srcObject 属性即可播放。 关于此对象的更多资料,可参阅 mdn 文档
拒绝回调: void - 由于会一直等待媒体流,因此暂时未设定请求失败的情况

参数 类型 描述
userId string

成员ID

获取静音状态

ymrtC.getMute(userId) ⇒ boolean

获取一个成员的静音状态。

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

是否静音


分类: 成员控制

参数 类型 描述
userId string

成员ID

设置静音

ymrtC.setMute(userId, isMuted)

为一个成员的音频流设置静音。

类型: 实例方法(function),来自 YMRTC
分类: 成员控制

参数 类型 描述
userId string

成员ID

isMuted boolean

是否静音

设置全体静音

ymrtC.setAllMute(isMuted)

为所有成员的音频流设置静音。

类型: 实例方法(function),来自 YMRTC
分类: 成员控制

参数 类型 描述
isMuted boolean

是否静音

ICE状态改变事件

"event:user.ice-status:[memberId]:[status]"

原生 ICE (RTC.iceConnectionState) 状态有改变, 可参阅 mdn 文档

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

状态有改变的成员ID

status string

新状态,状态的取值请参阅 mdn 文档

成员连接状态改变事件

"event:user.signaling-status:[memberId]:[status]"

与成员之间的连接协商状态有改变。

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

状态有改变的成员ID

status string

新状态,状态的取值:

  • new: 未连接;
  • waiting: 等待对方连接过来;
  • negotiating: 正在协商(交换视频格式信息等等);
  • negotiated: 协商完成(成功);
  • failed: 连接失败。

媒体流改变事件

"event:user.update-stream:[memberId]"

成员的媒体流有改变,这时需要更新对应成员的 <video><audio> 的 srcObject 属性。

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

有改变的成员ID

stream MediaStream

新的媒体流,把此值赋值给 <video><audio> 的 srcObject 属性即可更新媒体流。

媒体流移除事件

"event:user.remove-stream:[memberId]"

成员的媒体流被对方移除,这时对应成员的 <video><audio> 的视频或音频播放可能会突然定格或停止,忽略它而不做处理并无大碍,此事件用于防备不时之需。

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

有改变的成员ID

媒体状态更新事件

"event:user.media-stats-update:[memberId]"

刷新了从成员接收(下载)的媒体的状态参数。

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

成员ID

stats MediaStats

媒体状态参数

暂停订阅事件

"event:user.pause-subscribe:[memberId]"

暂停订阅流服务某用户的媒体流

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

成员ID

isAudioPaused boolean

音频流是否暂停订阅

isVideoPaused boolean

视频流是否暂停订阅

恢复订阅事件

"event:user.resume-subscribe:[memberId]"

恢复订阅某用户的媒体流

类型: 事件,由 YMRTC 触发
分类: 成员控制
属性

名称 类型 描述
memberId string

成员ID

isAudioResumed boolean

音频流是否恢复订阅

isVideoResumed boolean

视频流流是否恢复订阅

房间控制

加入房间

ymrtC.joinRoom(roomId, codec) ⇒ Promise

加入房间,会自动等待登录成功再加入房间。

类型: 实例方法(function),来自 YMRTC
分类: 房间控制
完成回调: void - 加入房间成功
拒绝回调: void - 由于自动等待登录和本地媒体,因此暂时没有定义失败的情况

参数 类型 描述
roomId string | number

房间ID

codec string

用于设置浏览器使用的编解码格式。如果你需要使用 Safari 12.1 及之前版本,将该参数设为 "h264";其他情况我们推荐使用 "vp8"

退出房间

ymrtC.leaveRoom([roomId])

退出房间,并断开房间内成员之间的连接。强制退出,无返回值。

类型: 实例方法(function),来自 YMRTC
分类: 房间控制

参数 类型 描述
[roomId] string | number

可选。指定要退出的房间ID,若不指定则退出所有房间

检查是否在房间

ymrtC.inRoom(roomId) ⇒ boolean

返回目前是否正在某个房间之内。

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

  • 是否在房间内

分类: 房间控制

参数 类型 描述
roomId string | number

房间ID

获取房间列表

ymrtC.getRoomIdList() ⇒ Array.<string>

返回当前已经加入的房间ID列表。

类型: 实例方法(function),来自 YMRTC
返回值: Array.<string> -

  • 房间ID数组

分类: 房间控制

获取房间成员

ymrtC.getRoomMemberIdList(roomId) ⇒ Array.<string>

返回房间内所有成员的ID列表。

类型: 实例方法(function),来自 YMRTC
返回值: Array.<string> -

  • 成员ID数组

分类: 房间控制

参数 类型 描述
roomId string | number

房间ID

获取媒体上传状态

ymrtC.getRoomMediaStats(roomId) ⇒ MediaStats | null

返回房间上一秒的媒体上传状态

类型: 实例方法(function),来自 YMRTC
返回值: MediaStats | null -

  • 媒体参数(上传),若房间不存在或媒体未启动或其他原因无法获取,则返回 null

分类: 房间控制

参数 类型 描述
roomId string | number

房间ID

获取媒体接收状态

ymrtC.getUserMediaStats(userId) ⇒ MediaStats | null

返回某成员上一秒的媒体接收状态

类型: 实例方法(function),来自 YMRTC
返回值: MediaStats | null -

  • 媒体参数(接收),若成员不存在或媒体未传过来或其他原因无法获取,则返回 null

分类: 房间控制

参数 类型 描述
userId string | number

成员ID

推流成员更新事件

"event:room.update:[roomId]"

房间[roomId]中的推流成员有更新(有人加入或者离开)。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

members Array.<string>

房间内所有成员的ID列表

成员加入事件

"event:room.member-join:[roomId]"

一位成员加入了房间[roomId],处于推流状态,媒体流即将到来。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

member string

加入房间的成员ID

成员离开事件

"event:room.member-leave:[roomId]"

一位成员离开了房间[roomId],处于停止推流状态,媒体流即将结束。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

member string

离开房间的成员ID

加入房间事件

"event:room.join:[roomId]"

本帐户进入了房间[roomId]。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

离开房间事件

"event:room.leave:[roomId]"

本帐户离开了房间[roomId]。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

媒体状态更新事件

"event:room.media-stats-update:[roomId]"

刷新了发送(上传)给房间[roomId]的媒体的状态参数。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

stats MediaStats

媒体状态参数

远端用户麦克风关闭事件

"event:room.other-mic-off:[roomId]"

远端用户麦克风关闭。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

远端用户麦克风开启事件

"event:room.other-mic-on:[roomId]"

远端用户麦克风开启。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

远端用户摄像头开启事件

"event:room.other-video-input-start:[roomId]"

远端用户摄像头开启。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

远端用户摄像头关闭事件

"event:room.other-video-input-stop:[roomId]"

远端用户摄像头关闭。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

远端用户扬声器关闭事件

"event:room.others-speaker-off:[roomId]"

远端用户扬声器关闭。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

远端用户扬声器开启事件

"event:room.others-speaker-on:[roomId]"

远端用户扬声器开启。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

userId string

用户ID

房间成员变化事件

"event:room.member-change:[roomId]"

房间成员变化事件。

类型: 事件,由 YMRTC 触发
分类: 房间控制
属性

名称 类型 描述
roomId string

房间ID

users Array.<YoumeMemberChangeUser>

用户加入退出信息

广播消息事件

"event:room.on-recive-message:[roomId]"

服务端广播消息事件。

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

名称 类型 描述
roomId string

房间ID

msg YoumeOnReceiveMessage

消息

本地媒体控制

启动本地媒体

ymrtC.startLocalMedia([mediaConfig]) ⇒ Promise

启动本地媒体。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制
完成回调: MediaStream - 启动成功,获得本地媒体流对象, 赋值给 <video><audio>srcObject 属性即可播放。 关于此对象的更多资料,可参阅 mdn 文档
拒绝回调: DOMException - 启动失败,获得原生的错误对象。 具体错误可参见 mdn 文档

参数 类型 描述
[mediaConfig] MediaConfig

媒体配置

暂停本地媒体

ymrtC.pauseLocalMedia()

暂停本地媒体(屏蔽摄像头、关闭麦克风)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

暂停本地视频

ymrtC.pauseLocalVideo()

暂停本地视频(只屏蔽摄像头,麦克风不变)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

暂停本地音频

ymrtC.pauseLocalAudio()

暂停本地音频(只屏蔽麦克风,摄像头不变)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

恢复本地媒体

ymrtC.resumeLocalMedia()

恢复本地媒体(取消屏蔽摄像头、取消关闭麦克风)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

恢复本地视频

ymrtC.resumeLocalVideo()

恢复本地视频(只取消屏蔽摄像头、麦克风不变)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

恢复本地音频

ymrtC.resumeLocalAudio()

恢复本地音频(只取消屏蔽麦克风、摄像头不变)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

获取摄像头屏蔽状态

ymrtC.isLocalVideoPaused() ⇒ boolean

返回摄像头是否为屏蔽状态。

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

  • true: 屏蔽了,false: 没屏蔽

分类: 本地媒体控制

获取麦克风屏蔽状态

ymrtC.isLocalAudioPaused() ⇒ boolean

返回麦克风是否为屏蔽状态。

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

  • true: 屏蔽了,false: 没屏蔽

分类: 本地媒体控制

停止本地媒体

ymrtC.stopLocalMedia()

停止本地媒体(关掉摄像头和麦克风的电源)。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制

获取本地媒体状态

ymrtC.getLocalMediaStatus() ⇒ string

获取本地媒体的当前状态。

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

  • stop: 未启动,
    starting: 正在尝试启动, recording: 已经启动,正在录音和/或录像,failed: 启动失败

分类: 本地媒体控制

请求本地媒体流

ymrtC.requestLocalMediaStream() ⇒ Promise

异步请求本地媒体流 (stream)。若本地媒体尚未启动, 则等待启动成功,否则直接回调已存在的媒体流。

类型: 实例方法(function),来自 YMRTC
分类: 本地媒体控制
完成回调: MediaStream - 获得本地媒体流 赋值给 <video><audio>srcObject 属性即可播放。 关于此对象的更多资料,可参阅 mdn 文档
拒绝回调: DOMException - 启动失败,获得原生的错误对象。

音量增益控制

ymrtC.setLocalAudioVolumeGain(gain)

录音音量增益控制

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

参数 描述
gain

声音增益,范围 0 - 2.0 表示从0% 到 200% 的录音增益

本地媒体状态改变事件

"event:local-media.status:[status]"

本地媒体状态改变。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制
属性

名称 类型 描述
status string

新的状态值,状态的取值:

  • stop: 本地媒体已经停止(摄像头和麦克风都已经关掉了);
  • starting: 正在尝试启动本地媒体(包括请求权限和初始化设备);
  • recording: 本地媒体已经成功启动,正在录像和/或录音;
  • failed: 失败(可能设备出错,或者用户禁止了摄像头和麦克风权限)。

本地媒体流已就绪事件

"event:local-media.has-stream"

本地媒体流已经准备就绪。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制
属性

名称 类型 描述
stream MediaStream

本地媒体流对象。

本地媒体流移除事件

"event:local-media.remove-stream"

本地媒体流被移除。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制

本地视频暂停事件

"event:local-media.pause-video"

本地媒体视频暂停(屏蔽了摄像头,对方只能看到黑屏)。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制

本地音频暂停事件

"event:local-media.pause-audio"

本地媒体音频暂停(关闭了麦克风,使对方听不到声音)。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制

本地视频恢复事件

"event:local-media.resume-video"

本地媒体视频恢复(取消暂停状态,摄像头重新亮起来)。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制

本地音频恢复事件

"event:local-media.resume-audio"

本地媒体音频恢复(取消暂停状态,麦克风重新开始采集声音)。

类型: 事件,由 YMRTC 触发
分类: 本地媒体控制

用户帐户控制

用户登录

ymrtC.login(userId, token) ⇒ Promise

用户登录。

类型: 实例方法(function),来自 YMRTC
分类: 用户帐户控制
完成回调: void - 登录成功
拒绝回调: string - 登录失败,回调失败信息

参数 类型 描述
userId string

用户ID

token string

用户密码

用户登出

ymrtC.logout()

用户退出登录,断开所有连接。

类型: 实例方法(function),来自 YMRTC
分类: 用户帐户控制

获得当前用户ID

ymrtC.getMyUserId() ⇒ string

获得当前用户ID。

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

  • 用户ID。若未登录,则返回空字符串 ''。

分类: 用户帐户控制

登录成功事件

"event:account.logged"

用户登录成功。

类型: 事件,由 YMRTC 触发
分类: 用户帐户控制

正在登录事件

"event:account.logging"

正在登录。

类型: 事件,由 YMRTC 触发
分类: 用户帐户控制

登出事件

"event:account.logout"

已登出。

类型: 事件,由 YMRTC 触发
分类: 用户帐户控制

全局自定义类型(typedef)

初始化 YIM 对象的配置

InitConfig : Object

初始化 YIM 对象的配置

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

参数 类型 默认值 描述
appKey string

游密分配的 appKey

[userId] string

可选。用户登录 ID,若在此处直接输入用户ID和密码,则初始化后自动登录

[token] string

可选。用户登录密码,若在此处直接输入用户ID和密码,则初始化后自动登录

[roomId] string

可选。要加入的房间ID,若输入此值,则初始化并登录(自动或手动登录均可)之后自动加入房间

[video] boolean true

是否为视频聊天,若为 false 则为仅语音聊天

[debug] boolean | string | Array.<string>

可选。是否输出调试信息

[codec] string "'h264'"

用于设置浏览器使用的编解码格式。如果你需要使用 Safari 12.1 及之前版本,将该参数设为 "h264";其他情况我们推荐使用 "vp8" @

初始化 YIM 对象的媒体配置

MediaConfig : Object

初始化 YIM 对象的配置

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

参数 类型 描述
[video] string | boolean

视频配置,可选值:false

'screen' 'window' 'lowres' // 320x240 'lowres-16:9' // 320x180 'stdres' // 640x480,默认值'stdres-16:9' // 640x360'hires' 'hires-16:9' 'hdres' // 都是 1280x720,不能支持4:3 'fhdres' //1920x1080 '4kres';// 3840x2160

[audio] string | boolean

音频配置,可选值:false

'screen' 'mic' true

[screenSourceId] string

若为 Electron 屏幕录像,可以传入特定的 sourceId

[stream] MediaStream

若自行建立 MediaStream 则可以直接用于此

初始化 YIM 对象的媒体配置信息

MediaStats : Object

初始化 YIM 对象的配置

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

参数 类型
speed number
packetsLostRate number
bytesTransferred number

成员变化事件

YoumeMemberChangeUser : Object

member-change事件中的用户信息

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

参数 类型
userId string
roomId string
isJoin boolean

收到自定义消息的通知

YoumeOnReceiveMessage : Object

服务端广播的自定义消息

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

参数 类型
fromUserId string
msg string
roomId string