###

# RTC Web SDK

## 简介

RTC Web SDK 是公司实时音视频通讯解决方案的 Web 端 SDK，它是通过 HTML 网页加载的 JavaScript 库。开发者可以使用 RTC Web SDK 提供的 API 建立连接，控制实时音视频通话，实现各种场景的应用。

目前 RTC Web SDK 主要支持 Chrome M73+ 、Firefox和Safari 浏览器。

`请务必使用 HTTPS 协议或者 localhost 来部署您的 Web App，否则会出现找不到 navigator.mediaDevices 错误！`

## 基本工作原理

RTC Web SDK 是基于 WebRTC 的实时音视频通话解决方案，它通过 WebSocket 与公司实时音视频后台服务器建立信令通道，信令通道 主要是用来进行用户进退房、媒体能力交换、房间内用户状态变更通知等信令通信；音视频数据传输则通过 WebRTC 的 RTP/RTCP 进行。

## API 概要

- AVDEngine类是整个 SDK 的主入口，提供创建 avdEngine 对象、获取摄像头列表、麦克风列表、检查浏览器兼容性、控制日志等级及日志保存等功能。

- Room类（由avdEngine.obtainRoom(roomId)创建），提供房间相关的核心能力:

  - 进房 join()

  - 退房leave()

  - 关闭房间 closeRoom()

- User类（由room.getUser(userId)创建），提供用户相关的核心能力:

  - 命令远端用户发布某一摄像头视频remotecmdPublishCamera(video)

  - 命令远端用户取消发布摄像头视频remotecmdUnpublishCamera(userId,cameraId)

  - 命令远端用户打开麦克风remotecmdOpenMicrophone(userId)

  - 命令远端用户关闭麦克风remotecmdCloseMicrophone(userId)

  - 命令远端用户麦克风静音remotecmdMuteMicrophone(userId)

  - 命令远端用户麦克风取消静音remotecmdUnmuteMicrophone(userId)

  - 针对移动端H5打开前置摄像头openMobileFrontVideo(element)

  - 针对移动端H5打开后置摄像头openMobileBackVideo(element)

  - 针对移动端H5关闭前置摄像头closeMobileFrontVideo()

  - 针对移动端H5关闭后置摄像头closeMobileBackVideo()

- Video类（由user.getVideo(videoId)创建），提供实时视频通话的核心能力:

  - 发布/预览本地视频previewAndPublish(element)

  - 取消预览本地视频unpreview()

  - 取消发布本地视频unpublish()

  - 订阅视频流subscrible(videoQuality)

  - 取消订阅视频流unsubscrible()

  - 禁视频muteCamera()

  - 取消禁视频unmuteCamera()]

- Audio类（由user.getVideo(microphoneId)创建），提供实时音频通话的核心能力:

  - 发布/预览本地音频openMicrophone(element)

  - 取消发布/预览本地音频closeMicrophone()

  - 订阅音频流subscrible()

  - 取消订阅音频流unsubscrible()

  - 禁音频muteMicrophone()

  - 取消禁音频unmuteMicrophone()

- Screen类（由user.getScreen()创建），提供实时桌面共享的核心能力:

  - 发布桌面共享publish()

  - 取消发布桌面共享unpublish()

  - 订阅桌面共享流subscrible()

  - 取消订阅桌面共享流unsubscrible()

## Tutotials

- 开始集成音视频通话