Options
All
  • Public
  • Public/Protected
  • All
Menu

视频访客模块

Hierarchy

  • EventTarget
    • RTCGuest

Implements

Index

Constructors

constructor

Properties

clientInfo

clientInfo: any

Accessors

participantMap

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

    Returns {}

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)

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

call

  • 指定业务组号进行呼叫, 呼叫成功后将通过 then 返回, 呼叫时可通过GuestCallParam设置随路参数, 昵称等参数.

    client.call('roomId', {
      extraParam: '',
      displayName: 'nickname'
    })
     .then(() => {
       console.log('呼叫成功.')
     });
    

    Parameters

    • number: string

      业务号

    • callParam: GuestCallParam = ...

      呼叫参数

    Returns Promise<any>

clearListener

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

    Returns void

destroy

  • destroy(): Promise<any>
  • 销毁client和CD

    该接口调用后将会关闭WebRTC连接并移除所有事件监听器, client将不会再触发任何事件.

    Returns 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>

hasListener

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

    Parameters

    • type: EventTargetType

    Returns boolean

listAllGroups

login

  • 登录视频平台

    可通过该接口指定账号, 密码等参数, 该接口将会创建CD, 并通过CD登录视频平台, 登录成功后返回值将变为 resolve 状态, 并执行 then 中的回调, 同时会触发GuestEventType.LOGOUT事件.

    Parameters

    Returns Promise<any>

logout

  • logout(): Promise<any>

oneToOneCall

  • oneToOneCall(userId: string, callParam?: GuestCallParam): Promise<any>
  • 一对一呼叫

    指定坐席进行呼叫, userId 应传入坐席的账号, 其他与call相同.

    Parameters

    • userId: string

      被呼叫方id

    • callParam: GuestCallParam = ...

      呼叫参数

    Returns 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(GuestEventType.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(GuestEventType.SCREEN_SHARE_STOP, ev => {
     // 停止渲染屏幕共享画面
     screenStream.stop();
    });
    

    Parameters

    Returns Promise<RTCStream>

requestUrgent

  • requestUrgent(): Promise<any>
  • 请求加急, 请求失败或坐席拒绝返回值都将变为 reject 状态, 并执行 catch 中的回调

    Returns Promise<any>

sendMessage

  • sendMessage(type: string, content: string | Object, toUserId?: string | ConferenceParticipant): Promise<any>
  • 发送会议内消息, 需指定消息类型和消息内容, 可选参数 toUserId 可以从participantMap中获取到.

    client.sendMessage('messageType', 'messageContent', 'userId')
     .then(() => {
       console.log('消息发送成功');
     });
    

    Parameters

    • type: string

      消息类型

    • content: string | Object

      消息内容

    • Optional toUserId: string | ConferenceParticipant

      消息发送的目标, 不传将发送给所有会议内成员

    Returns Promise<any>

sendOnlineMessage

sendSignalling

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

    Parameters

    • signal: string | Object

      信令消息

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

    Returns Promise<any>

setAudioRoute

setRatio

  • setRatio(ratio: number): Promise<any>
  • 设置坐席接收到访客的画面的比例, 一般使用 0.5625 (9/16), 1.777 (16/9), 0.75 (3/4), 1.333 (4/3), 1 (正方形).

    设置结果将通过返回值的状态变化或GuestEventType.SET_RATIO_RESULT事件通知.

    Parameters

    • ratio: number

      宽高比

    Returns Promise<any>

setRequestVideo

  • 设置远端视频流的分辨率

    该接口可用于动态设置远端画面的分辨率, 可设置的分辨率有4层(GuestPictureSize).

    const { GuestPictureSize } = JuphoonRTCGuestSDK;
    
    client.setRequestVideo(GuestPictureSize.MAX)
     .then(() => console.log('分辨率设置为最大'));
    

    设置结果将通过返回值的状态变化或GuestEventType.REQUEST_VIDEO_SIZE_RESULT事件通知.

    see

    GuestPictureSize

    Parameters

    Returns Promise<any>

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

  • 开启远端音视频画面

    如果接口调用成功, 返回值将变为 resolve 状态, 并且 then 回调里将会返回一个表示远端画面的RTCStream对象, 调用RTCStream.start可以将本地画面通过 <video> 标签渲染到界面上.

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

    Parameters

    Returns Promise<RTCStream>

switchCamera

  • 切换摄像头

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

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

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

    参数名 类型 描述
    deviceId string 代表设备的唯一id,可通过JuphoonRTCGuest.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>

term

  • term(): Promise<any>
  • 调用该接口会挂断通话, 成功挂断通话并离开会议返回值 Promise 状态将变为 resolve 且会销毁client.

    Returns Promise<any>

Generated using TypeDoc