API Reference for web - 概览

更新时间: 2023-10-23 16:45:52

# 概览

Web SDK 是通过 HTML 网页加载的 JavaScript 和 Typescript 库。你可以使用 Web SDK 在网页浏览器中调用 API 建立连接,控制音视频通话和直播服务。

请务必使用 HTTPS 协议或者 localhost,否则 SDK 无法正常工作。

# 全局模块

CoreRTC 是 Web SDK 中所有可调用方法的入口,主要包含以下方法。

# 概览

方法 描述
createClient 创建本地客户端

# 本地音视频采集

方法 描述
createMicrophoneAudioTrack 通过麦克风创建一个音频轨道对象
createCameraVideoTrack 通过摄像头创建一个视频轨道对象
createMicrophoneAndCameraTracks 同时创建麦克风音频轨道和摄像头视频轨道
createScreenVideoTrack 通过屏幕共享创建一个视频轨道对象
createBufferSourceAudioTrack 通过音频文件创建一个音频轨道对象
createCustomAudioTrack 创建一个自定义的音频轨道对象
createCustomVideoTrack 创建一个自定义的视频轨道对象

# 媒体设备查询

方法 描述
getDevices 获取媒体设备列表
getCameras 获取摄像头列表
getMicrophones 获取麦克风列表
getPlaybackDevices 获取音频播放设备列表

# 日志管理

方法 描述
enableLogUpload 打开日志上传功能
disableLogUpload 关闭日志上传功能
setLogLevel 设置日志等级

# 全局事件回调

方法 描述
onCameraChanged 视频采集设备状态变化回调
onMicrophoneChanged 音频采集设备状态变化回调
onAudioAutoplayFailed 音频轨道自动播放失败回调

# 其他

方法 描述
checkSystemRequirements 检测浏览器兼容性
getSupportedCodec 获取支持的编码格式

# Client 类

调用 createClient 创建一个本地客户端对象 Client,代表一个通话中的本地用户。Client 类提供音视频通话的核心功能,主要包含以下方法。

方法 描述
join 加入频道
leave 离开频道
publish 发布本地音视频轨道
unpublish 取消发布本地音视频轨道
subscribe 订阅远端用户的音视频轨道
unsubscribe 取消订阅远端用户的音视频轨道

# LocalTrack 类

LocalTrack 是 Web SDK 中定义本地音视频轨道的抽象类,可用于本地播放和发布。

SDK 通过不同的方式创建不同的 LocalTrack,返回不同的 LocalTrack 派生类对象。以下列举了所有的 LocalTrack 派生类以及所对应的创建方式。

# 本地音频轨道

根据创建方式的不同,本地音频轨道可分为以下三种。其中 LocalAudioTrack 派生自 LocalTrackMicrophoneAudioTrackBufferSourceAudioTrack 派生自 LocalAudioTrack

本地音频轨道 描述
LocalAudioTrack 最基础的本地音频轨道对象,包含了基础的本地音频控制,如播放、设置音量控制。
通过调用 CoreRTC.createCustomAudioTrack 创建。
MicrophoneAudioTrack 本地麦克风音频轨道对象,比 LocalAudioTrack 多一些控制麦克风的方法。通过调用 CoreRTC.createMicrophoneAudioTrack 创建。
BufferSourceAudioTrack 通过读取音频数据源创建的本地音频轨道,比基础的 LocalAudioTrack 多一些控制音频数据源的方法。
通过调用 CoreRTC.createBufferSourceAudioTrack 创建。

# 本地视频轨道

根据创建方式的不同,本地视频可分为以下两种。其中 LocalVideoTrack 派生自 LocalTrackCameraVideoTrack 派生自 LocalVideoTrack

本地视频轨道 描述
LocalVideoTrack 最基础的本地视频轨道对象,包含了基础的本地视频控制,如播放、美颜。
通过调用 CoreRTC.createCustomVideoTrack 或 CoreRTC.createScreenVideoTrack 创建。
CameraVideoTrack 本地摄像头视频轨道对象,比 LocalVideoTrack 多一些控制摄像头和编码参数的方法。通过调用 CoreRTC.createCameraVideoTrack 创建。

# RemoteTrack 类

RemoteTrack 是 Web SDK 中用于定义远端音视频轨道的抽象类。

在实际操作中,你需要先调用 Client.subscribe 订阅远端用户,然后从远端用户对象 RemoteUser 中获取派生自 RemoteTrackRemoteAudioTrack 对象和 RemoteVideoTrack 对象。

# 引入方式

可通过 npm 或者模块化的方式引入 Web SDK:

import getRTCInstance from 'omnirtc-web';
/**
 * 获取token,
 * 获取方式可以参考 https://rtcdocs.magic-school.com/document/base/token.html
 **/
const token = 'token';
// 获取引擎实例
// engine API详细 https://rtcdocs.magic-school.com/api/web/classes/CoreRTC.CoreRTC-1.html
const engine = getRTCInstance(token);

// 加入RTC房间
// client API详细 https://rtcdocs.magic-school.com/api/web/classes/Client.Client-1.html
const client = engine.createClient({
  mode: 'live',
  codec: 'h264'
});