Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

Implements

Index

Constructors

constructor

Properties

clientInfo

clientInfo: any

Accessors

core

participantMap

  • get participantMap(): {}
  • 会议成员对象的集合 集合的key为成员的uri, key为 self 表示自己(即: participantMap['self'] === selfParticipant)

    Returns {}

recorder

selfParticipant

state

videoLayout

Methods

addEventListener

  • addEventListener(type: EventTargetType, func: EventListenerType, options?: EventListenerOptions): () => void
  • 添加事件监听器

    Parameters

    • type: EventTargetType

      要监听的事件类型

    • func: EventListenerType

      事件监听回调

    • Optional options: EventListenerOptions

    Returns () => void

    若添加成功则返回一个函数, 用于移除事件监听

      • (): void
      • Returns void

addEventListeners

  • addEventListeners(types: EventTargetType[], func: EventListenerType, options?: EventListenerOptions): false | (() => void)
  • 对多个事件添加同一个事件监听器

    Parameters

    • types: EventTargetType[]

      要监听的事件类型

    • func: EventListenerType

      事件监听回调

    • Optional options: EventListenerOptions

      设置监听器参数

    Returns false | (() => void)

    若添加成功则返回一个函数, 用于移除事件监听

clearListener

  • clearListener(): void
  • 清空所有绑定的事件

    Returns void

destroy

  • destroy(): Promise<any>

disableAudioOutput

  • disableAudioOutput(): Promise<any>

disableUploadAudioStream

  • disableUploadAudioStream(): Promise<any>

disableUploadVideoStream

  • disableUploadVideoStream(): Promise<any>

dispatchEvent

  • dispatchEvent(event: Event): boolean
  • 分发事件

    Parameters

    • event: Event

      分发的事件对象

    Returns boolean

    事件是否发送成功

dispatchEventLite

  • dispatchEventLite(type: EventTargetType, message?: any, error?: EventTargetType): void
  • 简化分发事件接口, 如需要分发的是错误事件, error参数传入具体错误类型

    Parameters

    • type: EventTargetType

      事件类型

    • Optional message: any

      消息

    • Optional error: EventTargetType

      错误类型

    Returns void

enableAudioOutput

  • enableAudioOutput(): Promise<any>

enableUploadAudioStream

  • enableUploadAudioStream(): Promise<any>

enableUploadVideoStream

  • enableUploadVideoStream(): Promise<any>

getStats

  • getStats(interval?: number): Promise<() => void>
  • 获取统计信息, 调用成功后, 会根据指定的间隔时间上报 ConferenceEventType.CONF_DELIVERY_STATS 事件, 统计信息保存在事件对象的 message.stats 中.

    client.addEventListener(ConferenceEventType.CONF_DELIVERY_STATS, ev => {
     console.log(ev.message.stats);
    });
    

    如需要停止获取统计信息, 请执行返回的 Promisethen 回调给出的 函数.

    // 10秒后停止获取统计信息
    
    getStats()
     .then((stopGetStats) => {
       setTimeout(() => stopGetStats(), 10 * 1000);
     });
    

    Parameters

    • interval: number = 2000

      上报统计信息的时间间隔, 单位: ms. interval最小值为 2000

    Returns Promise<() => void>

hasListener

  • hasListener(type: EventTargetType): boolean
  • 指定类型的事件是否被监听

    Parameters

    • type: EventTargetType

    Returns boolean

join

  • 参数video选项说明 - true: 视频会议(将会打开摄像头和麦克风), false: 音频会议(仅打开麦克风)

    Parameters

    Returns Promise<any>

leave

  • leave(): Promise<any>

login

logout

  • logout(): Promise<any>

query

  • query(channelId: string): Promise<any>

removeEventListener

  • removeEventListener(type: EventTargetType, func: EventListenerType): boolean
  • 移除事件监听器, 要提供与调用addEventListeneraddEventListeners时相同的参数

    Parameters

    • type: EventTargetType

      要移除的事件监听器类型

    • func: EventListenerType

      要移除的事件监听器

    Returns boolean

    返回true表示有该fun监听器并且移除成功

requestStream

  • 通过sourceId获取RTCStream

    <div id="screen-video"></div>
    
    // 监听成员开启屏幕共享事件
    client.addEventListener(ConferenceEventType.SCREEN_SHARE_START, ev => {
     // 屏幕共享uri
     const uri = ev.message.screenUri;
     // 发起屏幕共享的成员
     const sharer = ev.message.sharer;
     // 获取屏幕共享流的RTCStream对象
     client.requestStream(uri)
       .then(stream => {
         screenStream = stream;
         // 渲染屏幕共享画面,
         screenStream.start('screen-video');
       });
    });
    
    // 监听成员关闭屏幕共享事件
    client.addEventListener(ConferenceEventType.SCREEN_SHARE_STOP, ev => {
     // 停止渲染屏幕共享画面
     screenStream.stop();
    });
    

    Parameters

    Returns Promise<RTCStream>

requestVideo

sendMessage

  • sendMessage(type: string, content: string | Object, toUserId?: string | ConferenceParticipant): Promise<any>

sendOnlineMessage

  • sendOnlineMessage(toUserId: string | ConferenceParticipant, content: string | Object, options?: { thirdParty?: boolean }): Promise<any>
  • 发送在线消息, 与sendMessage的区别是sendOnlineMessage在client登录后即可调用.

    在线消息发送的结果会通过两种途径体现:

    1. sendOnlineMessage将返回一个{@link Promise}实例, 发送成功/失败返回值将进入 resolve / reject 状态.
    2. 监听ConferenceEventType.ONLINE_MESSAGE_SENT事件, 发送成功/失败事件对象ev.message.result的值分别是 true / false.

    通过监听ConferenceEventType.ONLINE_MESSAGE_RECEIVE事件可以接收其他人发送的在线消息, 接收的对象解构如下:

    属性名 类型 描述
    fromUserId string 发送者的uri
    content string 发送的消息内容

    使用示例如下:

     //  获取发送结果方式1
     client.sendOnlineMessage('toUserId', 'content')
       .then(() => {
         alert(`在线消息发送成功`);
       })
       .catch((reason) => {
         alert(`在线消息发送失败`);
       });
     //  获取发送结果方式2
     this.client.addEventListener(ConferenceEventType.ONLINE_MESSAGE_SENT, (ev) => {
         alert(`在线消息发送成功${ev.message.result ? '成功' : '失败'`);
     });
    
     //  接收在线消息
     this.client.addEventListener(ConferenceEventType.ONLINE_MESSAGE_RECEIVE, (ev) => {
       alert(`接收到在线消息\n发送者: ${ev.message.fromUserId}\n内容: ${ev.message.content}`);
     });
    

    Parameters

    • toUserId: string | ConferenceParticipant

      消息发送对象的 userId, 仅支持 uri 格式, 也可传入{@link _participantMap}的value.

    • content: string | Object

      消息内容, 如传入json对象会通过{@link JSON}字符串化

    • options: { thirdParty?: boolean } = ...

      额外选项

      • Optional thirdParty?: boolean

    Returns Promise<any>

sendSignalling

  • sendSignalling(signal: string | Object, options?: { destination?: string; isNewFormat?: boolean; isPlainText?: boolean; type?: "msg" | "ice" | "sdp" | "cmd" }): Promise<any>
  • 发送信令消息, 可指定发送的目的地

    Parameters

    • signal: string | Object

      信令消息

    • options: { destination?: string; isNewFormat?: boolean; isPlainText?: boolean; type?: "msg" | "ice" | "sdp" | "cmd" } = ...
      • Optional destination?: string
      • Optional isNewFormat?: boolean
      • Optional isPlainText?: boolean
      • Optional type?: "msg" | "ice" | "sdp" | "cmd"

    Returns Promise<any>

setAudioRoute

start

startCameraVideo

  • 开启摄像头麦克风, 该接口将会去向用户请求媒体设备权限并开启WebRTC连接, WebRTC是否进行连接与设备请求成功与否并无关联.

    即无论设备权限请求是否成功, 都会进建立WebRTC连接, 设备请求失败的情况下, 应当只会收到对端的音视频流, 本地音视频不会发送.

    该接口返回的 Promiseresolve / reject 状态仅表示用户允许/拒绝了设备授权. 当用户拒绝时可以在界面上做出对应提示.

    调用成功后, then 的回调函数会传入一个 RTCStream 对象, 调用RTCStream.start可以将本地画面通过 <video> 标签渲染到界面上.

    client.startCameraVideo(RenderType.CONTAIN)
     .then(stream => {
       stream.start('local-video');
     });
    

    Parameters

    • renderType: RenderType = ...

      渲染模式

      常量 描述
      RenderType.CONTAIN 画面保持宽高比, 并填充整个内容框, 如画面无法填满内容框将被添加黑边
      RenderType.COVER 画面保持宽高比,并填充整个内容框, 如画面有溢出部分将被裁剪

    Returns Promise<RTCStream>

startVideo

stop

  • stop(): Promise<any>

switchCamera

  • 切换摄像头

    该接口同时会影响到渲染的本地视频, 本地渲染的视频也会同步更新.

    切换摄像头可通过JuphoonRTCConference.getMediaDevices获取到 deviceId 来选择视频输入设备.

    如果只是需要在移动端进行前后置摄像头的切换, 可以通过指定StreamCameraConstraints.facingMode来切换前后置摄像头.

    参数名 类型 描述
    deviceId string 代表设备的唯一id,可通过JuphoonRTCConference.getMediaDevices获取
    facingMode 'user', 'environment' user: 前置摄像头, environment: 后置摄像头
    client.switchCamera({
      // deviceId: '',
      // facingMode: 'user',
      facingMode: 'environment',
    })
    .then(() => console.log('切换摄像头成功')
    

    Parameters

    Returns Promise<RTCStream>

switchStream

  • 切换通过WebRTC传输的本地媒体流, 可用于发送从 <canvas> <video> 中获取到的 MediaStream

    该接口可用于将本地传输的音视频轨道切换为从其他地方(音视频输入设备/<canvas>/<video>/<audio>/屏幕共享)获取到的{@link MediaStream}或{@link MediaStreamTrack}对象.

    StreamOptions可用属性说明

    参数名 类型 描述
    video boolean 使用默认的视频输入设备, 一般为前置摄像头
    video StreamCameraConstraints 可指定StreamCameraConstraints.deviceId, StreamCameraConstraints.facingMode
    audio boolean 使用默认的音频输入设备
    audio StreamMicrophoneConstraints 可指定StreamMicrophoneConstraints.deviceId
    videoSource {@link MediaStreamTrack} 自行获取的视频轨道, 可以是从<canvas>/<video>中捕获的{@link MediaStream}的视频轨道
    audioSource {@link MediaStreamTrack} 自行获取的音频轨道, 可以是从<video>/<audio>中捕获的{@link MediaStream}的音频轨道
    stream {@link MediaStream} {@link MediaStream}对象, 可能包含音频和视频轨道

    注: 从 canvasvideo/<audio> 中捕获音视频流的兼容性要求较高, 谨慎使用.

    Parameters

    Returns Promise<RTCStream>

Generated using TypeDoc