文档首页 > > SDK参考> Web SDK> 接口参考> 客户端对象(Client)

客户端对象(Client)

分享
更新时间:2021/01/07 GMT+08:00

本章节介绍了Web SDK的Client接口详情。

表1 Client接口

接口

描述

join

加入房间。调用该接口让用户加入指定房间,进行音频/视频通话。

leave

离开房间。用户结束通话后须调用该接口离开房间。

publish

加入房间后,发布本地流。

unpublish

取消发布本地流。

subscribe

订阅远端音视频媒体流。

unsubscribe

取消订阅远端音视频媒体。

switchRole

切换用户角色。

on

注册客户端对象事件回调接口。

off

取消注册客户端对象事件回调接口。

getConnectionState

获取客户端连接状态。

getTransportStats

获取和网关连接的网络质量统计数据。

getLocalAudioStats

获取本地音频统计数据。

getLocalVideoStats

获取本地视频统计数据。

getRemoteAudioStats

获取远端音频统计数据。

getRemoteVideoStats

获取远端视频统计数据。

join

async join(roomId: string, options: JoinConfig): Promise<void>

功能说明

加入房间。该接口让用户加入一个房间,进行音频/视频通话。

请求参数
  • roomId:必选,string[128]类型,房间ID,房间唯一标识符。
  • options:必选,JoinConfig类型,加入房间配置。
  • JoinConfig:{
    • userId:必选,string[128]类型,用户标识,userId 需要保证应用内唯一。
    • userName:可选,string[128]类型,用户昵称。
    • signature:必选,string[512]类型,鉴权签名字串,具体生成方法请参见接入鉴权
    • ctime:必选,鉴权签名时间戳。string类型,UTC时间戳,单位秒。
    • role:必选,number类型,用户角色,可以标识媒体方向。
      • 0: 表示joiner,能够发送音视频和接受音视频。
      • 1: 表示publisher,只发送自己的音视频媒体,不接收别人的音视频。
      • 2: 表示player,只接受别人的音视频,不发送自己的音视频媒体。
    • optionInfo:可选,string类型,optionInfo是一个Key,Value的JSON字串。

      }

返回参数

Promise<void>:返回一个Promise对象

注意事项

roomId和userName支持的字符包括:a-z、A-Z、0-9、空格、"-", ":", ";", "=", "@", "[", "]", "_", "~", ","。

leave

async leave(): Promise<void>

功能说明

离开房间,用户结束通话后须调用该接口离开房间。

请求参数

返回参数

Promise<void>:返回一个Promise对象。

publish

publish(stream: Stream): Promise<void>

功能说明

加入房间后,可以调用该接口发布本地流。只有角色为“joiner”“publisher”才能发布本地流。

请求参数

stream:必选,Stream类型。

返回参数

Promise<void>:返回一个Promise对象。

unpublish

pubulish(stream: Stream): Promise<void>

功能说明

取消发布本地流。

请求参数

stream:必选,Stream类型。

返回参数

Promise<void>:返回一个Promise对象。

subscribe

async subscribe(stream: RemoteStream, option:subscribeOption): Promise<void>

功能说明

订阅远端音视频媒体流。订阅远端媒体流成功后,会收到 Client.on('stream-subscribed') 事件通知。然后可以对流进行播放。

请求参数
  • stream:必选,RemoteStream类型。
  • option:可选,subscribeOption类型,设置是否接收视频或音频。示例:{video: false, audio: true}。如果不传默认视频和音频都订阅。

返回参数

Promise<void>:返回一个Promise对象。

注意事项

subscribeOption中“video”“audio”不能同时为“false”

unsubscribe

async unsubscribe(stream: Stream): Promise<void>

功能说明

取消订阅远端音视频媒体流。

请求参数

stream:必选,Stream类型,远端流对象,通过"stream-added"事件获得。

返回参数

Promise<void>:返回一个Promise对象。

switchRole

async switchRole(role: UserRoleType): Promise<void>

功能说明

切换用户角色,本方法用于加入房间成功之后修改角色。

请求参数

role:必选,UserRoleType类型。
  • 0:表示joiner,能够发送音视频和接受音视频。
  • 1:表示publisher,只发送自己的音视频媒体,不接收别人的音视频。
  • 2:表示player,只接受别人的音视频,不发送自己的音视频媒体。

返回参数

Promise<void>:返回一个Promise对象。

on

on(event: string, handler: function): void

功能说明

注册客户端对象事件回调接口。

请求参数
  • event:必选,string类型,事件名称。详细事件列表请参见ClientEvent
  • handler:必选,function类型,事件处理方法。

返回参数

off

off(event: string, handler: function): void

功能说明

取消事件绑定。

请求参数
  • event:必选,string类型,事件名称。详细事件列表请参见ClientEvent
  • handler:必选,function类型,事件处理方法。

返回参数

getConnectionState

getConnectionState(): ConnectionState

功能说明

获取客户端连接状态。

请求参数

返回参数

ConnectionState:webSocket的连接状态,string类型,取值如下:
  • CONNECTING:连接建立中。
  • CONNECTED:连接已建立。
  • RECONNECTING:重新连接中。
  • DISCONNECTED:连接已断开。

getTransportStats

getTransportStats(): Promise<TransportStats>

功能说明

获取 当前网络传输状况统计数据,该方法需要publish后调用。

请求参数

返回参数

TransportStats当前支持的属性包括:rtt表示往返时延。

getLocalAudioStats

getLocalAudioStats(): Promise<Map<string, LocalAudioStats>>

功能说明

获取本地音频统计数据。

请求参数

返回参数

  • string:表示userId。
  • LocalAudioStats:表示本地音频统计指标,包含如下属性:
    • bytesSent:必选,number类型。表示已发送字节数。
    • packetsSent:必选,number类型。表示已发送包数。

getLocalVideoStats

getLocalVideoStats(): Promise<Map<string, AllLocalVideoStats>>

功能说明

获取本地视频统计数据。

请求参数

返回参数

  • string:表示userId。
  • AllLocalVideoStats:表示本地视频统计指标。包含如下属性:
    • mainStream:必选,类型为LocalVideoStats,表示本地主流的统计数据。
    • subStream:必选,类型为LocalVideoStats,表示本地辅流的统计数据。
    LocalVideoStats包含如下属性:
    • bytesSent,必选,number类型。表示已发送字节数。
    • packetsSent:必选,number类型。表示已发送包数。
    • framesEncoded: 必选,number类型。表示已发送包数。
    • framesSent:必选,number类型。表示已发送帧数
    • frameWidth:必选,number类型。表示视频宽度
    • frameHeight:必选,number类型,表示视频高度

【注意事项】

该接口仅在本地流发布且被远端订阅后才可调用。

getRemoteAudioStats

getRemoteAudioStats(): Promise<Map<string, RemoteAudioStats>>

功能说明

获取远端音频统计数据。

请求参数

返回参数

  • string:表示userId。
  • RemoteAudioStats:表示远端音频统计指标。包含如下属性:
    • bytesReceived:必选,number类型,表示已接收字节数
    • packetsReceived:必选,number类型,表示已接收包数
    • packetsLost:必选,number类型,表示丢包数

getRemoteVideoStats

getRemoteVideoStats(): Promise<Map<string, AllRemoteVideoStats>>

功能说明

获取远端视频统计数据。

请求参数

返回参数

  • string:表示userId。
  • AllRemoteVideoStats:表示本地视频统计指标。包含如下属性:
    • mainStream:必选,类型为RemoteVideoStats,表示远端主流的统计数据。
    • subStream:必选,类型为RemoteVideoStats,表示远端辅流的统计数据。

    RemoteVideoStats包含如下属性:

    • bytesReceived:必选,number类型,表示已接收字节数。
    • packetsReceived:必选,number类型,表示已接收包数。
    • packetsLost:必选,number类型,表示丢包数。
    • framesDecoded:必选,number类型,表示已解码帧数。
    • frameWidth:必选,number类型,表示视频宽度。
    • frameHeight:必选,number类型,表示视频高度。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问