NERTC Web SDK 提供完善的音视频通话 JavaScript 开发框架,提供基于网络的视频通话和语音通话功能,支持在网页中调用API快速建立音视频连接,进行音视频通话和推流的服务。
完整的 NERTC Web SDK 由 NERTC、Client 和 Stream 三部分组成。
注意:自 V4.4.0 开始,入口 WebRTC2 更名为 NERTC,同时兼容 WebRTC2。
| 方法 | 功能描述 |
|---|---|
| NERTC.createClient | 创建客户端。 |
| NERTC.createStream | 创建音视频流对象。 |
| NERTC.getDevices | 获取可用的媒体输入/输出设备。 |
| NERTC.getCameras | 获取可用的视频输入设备。 |
| NERTC.getMicrophones | 获取可用的音频输入设备。 |
| NERTC.getSpeakers | 获取可用的音频输出设备。 |
| NERTC.Logger.enableLogUpload | 开启日志上传。 |
| NERTC.Logger.disableLogUpload | 关闭日志上传。 |
| 方法 | 功能描述 |
|---|---|
| NERTC.createClient | 创建客户端对象实例。 |
| Client.destroy | 销毁客户端对象实例。 |
| 方法 | 功能描述 |
|---|---|
| Client.join | 加入音视频房间。 |
| Client.leave | 离开音视频房间。 |
| Client.setChannelProfile | 设置房间场景。 |
| Client.setClientRole | 设置用户角色。 |
| Client.publish | 发布音视频流。 |
| Client.unpublish | 取消发布音视频流。 |
| Client.subscribe | 接收远端音视频流。 |
| Client.unsubscribe | 取消接收远端音视频流。 |
| Client.setRemoteVideoStreamType | 动态更新订阅视频的分辨率。 |
| Client.getConnectionState | 主动获取网络连接状态。 |
| Client.getUid | 获取本地用户 ID。 |
| Client.startProxyServer | 开启云代理。 |
| Client.stopProxyServer | 关闭云代理。 |
| 方法 | 功能描述 |
|---|---|
| Client.addTasks | 增加旁路推流任务。 |
| Client.deleteTasks | 删除旁路推流任务。 |
| Client.updateTasks | 更新旁路推流任务。 |
| 方法 | 功能描述 |
|---|---|
| Client.getSystemStats | 获取系统电量。 |
| Client.getTransportStats | 获取网络连接状况统计数据。 |
| 方法 | 功能描述 |
|---|---|
| Client.getLocalAudioStats | 获取本地发布流的音频统计数据。 |
| Client.getLocalVideoStats | 获取本地发布流的视频统计数据。 |
| Client.getRemoteAudioStats | 获取远端订阅流的音频统计数据。 |
| Client.getRemoteVideoStats | 获取远端订阅流的视频统计数据。 |
| Client.getSessionStats | 获取会话的连接状况统计数据。 |
| 方法 | 功能描述 |
|---|---|
| Client.setLocalMediaPriority | 设置本地用户的媒体流优先级。 |
| 方法 | 功能描述 |
|---|---|
| Client.setEncryptionMode | 设置媒体流加密模式。 |
| Client.setEncryptionSecret | 设置媒体流加密密钥。 |
| 方法 | 功能描述 |
|---|---|
| NERTC.createStream | 创建音视频流对象。 |
| Stream.destroy | 销毁音视频流对象。 |
| Stream.init | 初始化音视频流对象。 |
| Stream.play | 播放音视频流。 |
| Stream.stop | 停止播放音视频流。 |
| Stream.open | 打开音视频流输入设备,如麦克风。 |
| Stream.close | 关闭音视频流输入设备,如麦克风。 |
| 方法 | 功能描述 |
|---|---|
| Stream.setAudioProfile | 设置音频属性。 |
| Stream.setAudioVolume | 设置音频播放的音量。 |
| Stream.setCaptureVolume | 设置麦克风采集的音量。 |
| Stream.muteAudio | 禁用音频轨道。 |
| Stream.unmuteAudio | 启用音频轨道。 |
| Stream.getAudioLevel | 获取当前麦克风采集音量。 |
| Stream.hasAudio | 当前Stream是否有音频。 |
| Stream.setAudioOutput | 设置音频输出设备。 |
| 方法 | 功能描述 |
|---|---|
| Stream.setVideoProfile | 设置视频属性。 |
| Stream.setSubscribeConfig | 设置视频订阅的参数。 |
| Stream.setScreenProfile | 设置屏幕共享属性。 |
| Stream.muteVideo | 禁用视频轨道。 |
| Stream.unmuteVideo | 启用视频轨道。 |
| Stream.setLocalRenderMode | 设置本端视频画面大小。 |
| Stream.setRemoteRenderMode | 设置对端视频画面大小。 |
| Stream.takeSnapshot | 截取指定用户的视频画面。 |
| Stream.setCanvasWatermarkConfigs | 添加视频画布水印。 |
| 方法 | 功能描述 |
|---|---|
| Stream.startAudioMixing | 开始播放音乐文件和本地麦克风声音的混合。 |
| Stream.pauseAudioMixing | 暂停播放音乐文件。 |
| Stream.resumeAudioMixing | 恢复播放音乐文件。 |
| Stream.stopAudioMixing | 停止播放音乐文件。 |
| Stream.adjustAudioMixingVolume | 调节音乐文件播放音量。 |
| Stream.getAudioMixingDuration | 获取音乐文件的总长度。 |
| Stream.getAudioMixingCurrentPosition | 获取音乐文件当前播放进度。 |
| Stream.setAudioMixingPosition | 获取音乐文件当前播放进度。 |
| 方法 | 功能描述 |
|---|---|
| Stream.playEffect | 播放指定音效文件 |
| Stream.stopEffect | 停止播放指定音效文件 |
| Stream.pauseEffect | 暂停播放指定音效文件 |
| Stream.resumeEffect | 恢复播放指定音效文件 |
| Stream.setVolumeOfEffect | 调节指定音效文件的音量 |
| Stream.preloadEffect | 预加载指定音效文件 |
| Stream.unloadEffect | 释放指定音效文件 |
| Stream.getEffectsVolume | 获取所有音效文件播放音量 |
| Stream.setEffectsVolume | 设置所有音效文件播放音量 |
| Stream.stopAllEffects | 停止播放所有音效文件 |
| Stream.pauseAllEffects | 暂停播放所有音效文件 |
| Stream.resumeAllEffects | 恢复播放所有音效文件 |
| 方法 | 功能描述 |
|---|---|
| Stream.startMediaRecording | 开启单人视频录制。 |
| Stream.stopMediaRecording | 结束视频录制。 |
| Stream.playMediaRecording | 播放录制的音视频文件。 |
| Stream.listMediaRecording | 枚举已录制的音视频文件。 |
| Stream.cleanMediaRecording | 清除录制的音视频。 |
| Stream.downloadMediaRecording | 下载录制的音视频。 |
通过 Client.on 和 Stream.on 方法监听 Client 和 Stream 方法触发的事件。
以下为 SDK 可能抛出的错误,请参考下表进行处理
| 错误代码 | 值 | 描述 |
|---|---|---|
| INVALID_PARAMETER | 41000 | 无效参数,可以通过 console 日志查看原因 |
| NOT_SUPPORT | 41001 | 浏览器不支持,请使用 SDK 支持的浏览器 |
| NO_SERVER_ADDRESS | 41002 | 没有找到服务器地址 |
| SOCKET_ERROR | 41003 | 服务器地址连接失败 |
| NO_SIGNALLING | 41004 | 找不到信令 |
| NO_STATS | 41005 | 找不到 stats 数据 |
| NO_MEDIASOUP | 41006 | 找不到 mediasoup 数据 |
| NO_MEETINGS | 41007 | 找不到 meetings 数据 |
| NO_LOCALSTREAM | 41008 | 找不到 localStream 数据 |
| INVALID_OPERATION | 41009 | 非法操作,可以通过 console 日志查看原因 |
| REPEAT_JOIN | 41010 | 重复进房 |
| USER_NOT_IN_CHANNEL | 41011 | 本地用户不再频道中 |
| NOT_SUPPORTED_YET | 41012 | 当前不支持,可以通过 console 日志查看原因 |
| UNKNOWN_TYPE | 41013 | 未知类型,可以通过 console 日志查看原因 |
| NOT_ALLOWED | 41014 | 无权限,禁止操作 |
| STATE_ERROR | 41015 | 状态错误,可以通过 console 日志查看原因 |
| NO_FILE | 41016 | 找不到文件,可以通过 console 日志查看原因 |
| DECODE_FAILED | 41017 | 解码失败 |
| ADD_TASK_FAILED | 41018 | 添加推流任务失败 |
| DELETE_TASK_FAILED | 41019 | 删除推流任务请求失败 |
| UPDATE_TASKS_FAILED | 41020 | 更新推流任务失败 |
| RECORD_API_ERROR | 41021 | 录制接口出错 |
| NO_RECORDER_FOUND | 41022 | 没有进行录制 |
| NOT_DEFINED | 41023 | 未定义,可以通过 console 日志查看原因 |
| NOT_AVALIABLE | 41024 | 不可用,可以通过 console 日志查看原因 |
| NO_MEDIAHELPER | 41025 | 没有 mediaHelper 数据 |
| NO_PLAY | 41026 | 没有实例化 Play |
| NO_RECORD | 41027 | 没有实例化 Record |
| NOT_FOUND | 41028 | 未获取,可以通过 console 日志查看原因 |
| APPDATA_ERROR | 41029 | appData 错误,可以通过 console 日志查看原因 |
| AUTO_PLAY_NOT_ALLOWED | 41030 | 自动播放受限 |
| UNKNOWN | 99999 | 未知错误 |