Pano开发者中心
  • 开发者中心
  • 下载中心

›Web SDK

新手入门

  • 简介
  • 名词解释
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 频道最大时长说明
  • 每月一万分钟免费说明
  • 布局参数说明
  • 水印

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native
    • Unity

    白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native

高级功能(RTC)

  • 简介
  • 屏幕共享
  • 分组讨论
  • 状态回调
  • 设备诊断
  • 音量指示
  • 控制声音
  • 声卡操作
  • 混音/伴音
  • 混响
  • 耳返
  • 变声
  • 美颜
  • 音视频数据回调
  • 音视频外部采集
  • 收发多路视频
  • 多窗口渲染
  • 性能检测
  • 截图
  • 反馈

高级功能(RTS)

  • 简介
  • 白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Flutter

    标注

    • 视频标注
    • 共享标注
    • 外部标注

    消息

    • 消息服务

    远程控制

    • 远程控制

操作实践

  • 切换大小屏

RESTful API

  • 基本格式
  • 生成Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 消息服务
  • 服务端消息通知

SDK API

  • SDK接口说明
  • Windows (C++)
  • macOS/iOS (Objective-C)
  • Android (Java)
  • Web SDK (IE专用版)
  • Web SDK

    • 浏览器兼容性
    • RtcEngine
    • GroupManager
    • RtcWhiteboard
    • RtsService
    • RtcMessage
    • Annotation
    • Constants

更新记录

  • 简介
  • Windows
  • macOS
  • iOS
  • Android
  • Electron
  • Flutter
  • React Native
  • Unity
  • Web(全功能SDK)
  • Web(RTS SDK)
  • Web(IE专用音视频SDK)

帮助

  • FAQ
  • 更多帮助

RtsService

简介

RtsService 提供多白板、RtcMessage、Annotation、RemoteControl,以及频道管理的 API。

获取实例

RtsService 是单例模式的。

  • 如果通过 import 的方式导入 SDK (如下示例),那么可以通过 RtsService.getInstance() 获取实例。
    • import { RtsService } from "@pano.video/panortc";
    • import { RtsService } from "@pano.video/panorts";
  • 如果将 panortc-x.x.x.js 加载到 HTML,那么可以通过 PanoRtc.RtsService.getInstance() 获取实例。

Properties

isConnected

• isConnected: boolean= false

是否连接到 server


Methods

batchOff

▸ batchOff(events: string[]): void

Parameters:

NameType
eventsstring[]

批量取消事件监听,该事件所有的监听都会被取消

Returns: void


getAnnotation

▸ getAnnotation(annotationId: string, sourceType: "video" | "share" | "external", videoSourceIndex?: number): Annotation

获取标注白板实例,如果没有会自动创建实例

所有用户创建的标注白板对象也都会存储在 RtsService 中,当标注结束(某个用户主动调用 stop 方法,其他用户会收到标注结束事件)时会自动清除

Parameters:

NameTypeDefault value
annotationIdstring-
sourceType"video" | "share" | "external"-
videoSourceIndexnumber0

videoSourceIndex: 获取视频标注(sourceType 为 "video")时,如果有多个视频流(例如用户使用多摄像头),指定对应的视频流 index

Returns: Annotation


getI18nConfig

获取当前 i18n 配置

▸ getI18nConfig(): object

Returns: object


getRoster

▸ getRoster(): UserInfo []

获取已经加入当前 Channel 中的用户列表

Returns: UserInfo[]

type UserInfo = {
  name: string
  userId: string
  userData: string  // 自定义用户数据
  joinTime: string
  nid: string
  os: 'android' | 'browser' | 'ios' | 'linux' | 'mac' | 'unknown' | 'windows'
}

getWhiteboard

▸ getWhiteboard(wbId: string): RtcWhiteboard

通过 wbId 获取白板实例,如果没有会自动创建

所有用户自行创建的白板也都会存储在 RtsService 中,当白板 session 被关闭时(某个用户主动调用 stop 方法,其他用户会收到白板关闭事件)会自动清除

Parameters:

NameType
wbIdstring

Returns: RtcWhiteboard


getRtcMessage

▸ getRtcMessage(): RtcMessage

获取 RtcMessage 的实例

Returns: RtcMessage


isUserAnnotationOn

▸ isUserAnnotationOn(annotationId: string, sourceType: "video" | "share" | "external", videoSourceIndex?: number): boolean

某个用户是否开启了白板

Parameters:

NameTypeDefault value
annotationIdstring-
sourceType"video" | "share" | "external"-
videoSourceIndexnumber0

Returns: boolean


joinChannel

▸ joinChannel(option: { appId: string ; channelId: string ; name: string ; token: string ; userId: string }, onSuccess: (): any , onFail: (result: StatusCode) => any): QResult

加入频道,入会成功时会触发 RtsService.Events.channelJoinSuccess 事件

Parameters:

NameType
optionobject
option.appIdstring
option.channelIdstring
option.namestring
option.tokenstring
option.userIdstring
onFail(result: StatusCode) => any

Returns: QResult


leaveChannel

离开频道,其他用户会收到当前用户离开的事件(RtsService.Events.channelUserLeave)

▸ leaveChannel(): StatusCode

Returns: StatusCode


listWhiteboard

▸ listWhiteboard(): RtcWhiteboard[]

获取当前缓存的所有白板

Returns: RtcWhiteboard[]


off

▸ off<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): RtsService

取消事件监听

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn?(...args: any[]) => void
context?any
once?boolean

Returns: RtsService


on

▸ on<T>(event: T, fn: (...args: any[]) => void, context?: any): RtsService

添加事件监听

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn(...args: any[]) => void
context?any

Returns: RtsService


once

▸ once<T>(event: T, fn: (...args: any[]) => void, context?: any): RtsService

为给定事件添加单次事件监听,触发后会自动去除

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn(...args: any[]) => void
context?any

Returns: RtsService


removeAllListeners

▸ removeAllListeners(event?: string | symbol): RtsService

删除所有监听事件,或者仅删除传入的事件的监听

Parameters:

NameType
event?string \symbol

Returns: RtsService


removeListener

▸ removeListener<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): RtsService

删除给的事件的回调

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn?(...args: any[]) => void
context?any
once?boolean

Returns: RtsService


removeWhiteboard

▸ removeWhiteboard(wbId: string): void

删除缓存的白板

Parameters:

NameType
wbIdstring

Returns: void


saveLogs

▸ saveLogs(fileName?: string): void

保存日志,会直接下载到本地

Parameters:

NameType
fileNamestring

Returns: void


setI18nConfig

设置 i18n 配置,可以只设置部分,会和当前配置合并

▸ setI18nConfig(config: any): void

Parameters:

NameType
configany

Returns: void


setLocale

▸ setLocale(locale: string): void

设定语言,默认配置包含 zh_CN、zh_TW、en、de、fr、ja、ko

Parameters:

NameType
localestring

Returns: void


updateUserData

▸ updateUserData(userData: string, userName?: string): StatusCode

更新用户数据,数据会保存在服务器,其他用户会收到 userUpdate 和 rosterUpdate 事件,可从 roster 中获取该数据

Parameters:

NameType
userNamestring
userDatastring

Returns: StatusCode


getInstance

获取 RtsService 实例

▸ Static getInstance(): RtsService

Returns: RtsService

Events

RtsService 实例会在某些事件发生时触发对应的事件,开发者可以监听这些事件设置响应的处理方法

channelJoinSuccess

入会(joinChannel)成功时触发该事件

channelCountDown

频道倒计时

RtsService.getInstance().on(
  RtsService.Events.channelCountDown,
  (remainSeconds: number) => {
    console.log('remainSeconds', remainSeconds);
  }
);

userJoin

用户加入频道中

RtsService.getInstance().on(
  RtsService.Events.userJoin,
  (userId: string, userInfo: any) => {
    console.log('userJoin', userId, userInfo);
  }
);

userLeave

用户离开频道

RtsService.getInstance().on(
  RtsService.Events.userLeave,
  (userId: string) => {
    console.log('userLeave', userId);
  }
);

userUpdate

频道中用户更新

RtsService.getInstance().on(
  RtsService.Events.userUpdate,
  (userId: string) => {
    console.log('userUpdate', userId);
  }
);

readyStateChanged

RtsService 和server连接状态变化

RtsService.getInstance().on(
  RtsService.Events.readyStateChanged,
  (state: {ready: boolean; type: 'join'|'failover'|'left'; message: string;}) => {
    console.log('readyStateChanged', state);
  }
);

remoteControlConnected

远程控制连接建立事件

其他端创建远程连接对象后,本端会收到该事件,远程控制对象(RtcController)会被创建出来作为回调参数

RtsService.getInstance().on(
  RtsService.Events.remoteControlConnected,
  (rtcController: RtcController) => {
    console.log('remoteControlConnected, remote userId', rtcController.targetUserId);
  }
);

shareAnnotationStart

共享标注开始事件

其他端创建共享标注白板对象后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.shareAnnotationStart,
  (annotationId: string) => {
    console.log('shareAnnotationStart', annotationId)
  }
);

shareAnnotationStop

共享标注结束事件

其他端结束标注,或者关闭共享标注白板session后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.shareAnnotationStop,
  (annotationId: string) => console.log('shareAnnotationStop', annotationId)
);

videoAnnotationStart

视频标注开始事件

其他端创建视频标注白板对象后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.videoAnnotationStart,
  (annotationId: string) => {
    console.log('videoAnnotationStart', annotationId)
  }
);

videoAnnotationStop

视频标注结束事件

其他端结束标注,或者关闭视频标注白板session后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.videoAnnotationStop,
  (annotationId: string) => {
    console.log('videoAnnotationStop', annotationId)
  }
);

externalAnnotationStart

外部标注开始事件

其他端创建视频标注白板对象后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.externalAnnotationStart,
  (annotationId: string) => {
    console.log('externalAnnotationStart', annotationId)
  }
);

externalAnnotationStop

外部标注结束事件

其他端结束标注,或者关闭视频标注白板session后,本端会收到该事件

RtsService.getInstance().on(
  RtsService.Events.externalAnnotationStop,
  (annotationId: string) => {
    console.log('externalAnnotationStop', annotationId)
  }
);

failover

RtsService failover事件

开发者可以监听这个事件,在发生 failover(服务不可用)时弹出提示给用户,sdk会自动尝试重连,开发者不需要再做其他额外的处理

RtsService.getInstance().on(
  RtsService.Events.failover,
  (data: {state: 'Reconnecting' | 'Success' | 'Failed', msg: string}) => {
    console.log('failover', data)
  }
);

whiteboardStart

白板session创建事件

其他端新创建白板(RtcWhiteboard),本端会收到这个事件,收到事件后,sdk不会自动创建白板对象,需要开发者自行创建

RtsService.getInstance().on(
  RtsService.Events.whiteboardStart,
  (sessionId: string) => {
    console.log('whiteboardStart', sessionId)
  }
);

whiteboardStop

白板session停止事件

RtsService.getInstance().on(
  RtsService.Events.whiteboardStop,
  (sessionId: string) => {
    console.log('whiteboardStop', sessionId)
  }
);
Last updated on 3/8/2022
← RtcWhiteboardRtcMessage →
  • 简介
    • 获取实例
  • Properties
    • isConnected
  • Methods
    • batchOff
    • getAnnotation
    • getI18nConfig
    • getRoster
    • getWhiteboard
    • getRtcMessage
    • isUserAnnotationOn
    • joinChannel
    • leaveChannel
    • listWhiteboard
    • off
    • on
    • once
    • removeAllListeners
    • removeListener
    • removeWhiteboard
    • saveLogs
    • setI18nConfig
    • setLocale
    • updateUserData
    • getInstance
  • Events
    • channelJoinSuccess
    • channelCountDown
    • userJoin
    • userLeave
    • userUpdate
    • readyStateChanged
    • remoteControlConnected
    • shareAnnotationStart
    • shareAnnotationStop
    • videoAnnotationStart
    • videoAnnotationStop
    • externalAnnotationStart
    • externalAnnotationStop
    • failover
    • whiteboardStart
    • whiteboardStop
浙ICP备20002645号 ©2019-2022 Pano拍乐云