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.getSupportedCodec | 获取 SDK 和当前浏览器同时支持的编解码格式。 |
NERTC.Logger.enableLogUpload | 开启日志上传。 |
NERTC.Logger.disableLogUpload | 关闭日志上传。 |
NERTC.Device.enableCompatMode | 开启音频采集设备兼容模式。 |
NERTC.Device.disableCompatMode | 关闭音频采集设备兼容模式。 |
NERTC.checkSystemRequirements | 检查系统是否支持 NERTC。 |
NERTC.checkBrowserCompatibility | 检查浏览器是否支持 NERTC。 |
NERTC.setArea | 设置访问区域。 |
方法 | 功能描述 |
---|---|
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.enableDualStream | 开启双流发布模式。 |
Client.disableDualStream | 关闭双流发布模式。 |
Client.setPlaybackVolume | 设定整个房间的远端播放音量。 |
方法 | 功能描述 |
---|---|
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.isPlaying | 音视频流是否正在播放。 |
Stream.canPlay | 音视频流是否可以播放。 |
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.getAudioEffectsDuration | 获取音效时长。 |
Stream.getAudioEffectsCurrentPosition | 获取音效播放进度。 |
方法 | 功能描述 |
---|---|
Stream.startMediaRecording | 开启单人视频录制。 |
Stream.stopMediaRecording | 结束视频录制。 |
Stream.playMediaRecording | 播放录制的音视频文件。 |
Stream.listMediaRecording | 枚举已录制的音视频文件。 |
Stream.cleanMediaRecording | 清除录制的音视频。 |
Stream.downloadMediaRecording | 下载录制的音视频。 |
通过 Client.on 和 Stream.on 方法监听 Client 和 Stream 方法触发的事件。
以下为 SDK 可能抛出的错误,请参考下表进行处理。
key | 错误码 | 描述 | 可能原因及处理建议 |
---|---|---|---|
INVALID_PARAMETER | 41000 | 无效参数 | 一般是参数错误,可以通过 console 日志查看错误原因及处理方式 |
NOT_SUPPORT | 41001 | 浏览器不支持 | 一般是浏览器不支持,可以通过 console 日志查看错误原因及处理方式 |
NO_SERVER_ADDRESS | 41002 | 没有找到服务器地址 | 一般是服务器错误,请联系云信技术支持 |
SOCKET_ERROR | 41003 | 服务器地址连接失败 | 一般是服务器地址连接失败,请联系云信技术支持 |
NO_SIGNALLING | 41004 | 找不到信令 | 一般是信令错误,请联系云信技术支持 |
NO_STATS | 41005 | 数据格式错误 | 一般是数据格式错误,请联系云信技术支持 |
NO_MEDIASERVER | 41006 | 找不到媒体服务 | 一般是媒体服务器错误,请联系云信技术支持 |
NO_MEETINGS | 41007 | 找不到会议信息 | 一般是会控错误,请联系云信技术支持 |
NO_LOCALSTREAM | 41008 | 找不到 localStream 数据 | 可以通过 console 日志查看错误原因及处理方式 |
INVALID_OPERATION | 41009 | 非法操作 | 一般是接口操作错误,可以通过 console 日志查看错误原因及处理方式 |
REPEAT_JOIN | 41010 | 重复加入房间 | 一般是重复加入房间导致的错误 |
USER_NOT_IN_CHANNEL | 41011 | 本地用户不在频道中 | 可以通过 console 日志查看错误原因及处理方式,或联系云信技术支持 |
NOT_SUPPORTED_YET | 41012 | 当前不支持 | 一般是当前操作浏览器不支持 |
UNKNOWN_TYPE | 41013 | 位置类型 | 一般是当前参数类型错误,可以通过 console 日志查看错误原因及处理方式 |
NOT_ALLOWED | 41014 | 权限错误 | 一般是没有权限进行操作,可以通过 console 日志查看错误原因及处理方式 |
STATE_ERROR | 41015 | 状态错误 | 请联系云信技术支持 |
NO_FILE | 41016 | 找不到文件 | 可以通过 console 日志查看错误原因及处理方式 |
DECODE_FAILED | 41017 | 解码失败 | 可以通过 console 日志查看错误原因及处理方式 |
ADD_TASK_FAILED | 41018 | 添加推流任务失败 | 可以通过 console 日志查看错误原因及处理方式 |
DELETE_TASK_FAILED | 41019 | 删除推流任务请求失败 | 可以通过 console 日志查看错误原因及处理方式 |
UPDATE_TASKS_FAILED | 41020 | 更新推流任务请求失败 | 可以通过 console 日志查看错误原因及处理方式 |
RECORD_API_ERROR | 41021 | 录制接口出错 | 可以通过 console 日志查看错误原因及处理方式 |
NO_RECORDER_FOUND | 41022 | 没有进行录制 | 可以通过 console 日志查看错误原因及处理方式 |
NOT_DEFINED | 41023 | 未定义错误 | 可以通过 console 日志查看错误原因及处理方式 |
NOT_AVAILABLE | 41024 | 不可用错误 | 可以通过 console 日志查看错误原因及处理方式 |
NO_MEDIAHELPER | 41025 | 一般是某些媒体数据错误 | 可以通过 console 日志查看错误原因及处理方式,或联系云信技术支持 |
NO_PLAY | 41026 | 一般是没有开启播放导致的错误 | 可以通过 console 日志查看错误原因及处理方式,或联系云信技术支持 |
NO_RECORD | 41027 | 一般是没有开启录制导致的错误 | 可以通过 console 日志查看错误原因及处理方式 |
NOT_FOUND | 41028 | 相关信息无法获取 | 一般是参数设置问题,可以通过 console 日志查看错误原因及处理方式,或联系云信技术支持 |
APPDATA_ERROR | 41029 | 一般是媒体数据错误 | 请联系云信技术支持 |
AUTO_PLAY_NOT_ALLOWED | 41030 | 一般是浏览器自动播放受限错误 | 可以通过 console 日志查看错误原因及处理方式 |
MEDIA_OPEN_BANNED_BY_SERVER | 41032 | 音视频被服务器禁言 | 可以通过 console 日志查看错误原因及处理方式 |
PROXY_SERVER_ERROR | 41033 | 云代理失败 | 可以通过 console 日志查看错误原因及处理方式,或联系云信技术支持 |
UNKNOWN | 99999 | 一般是未知原因错误 | 请联系云信技术支持 |
key | 错误码 | 描述 | 原因及处理建议 |
---|---|---|---|
INVALID_PARAMETER_ERROR | 10000 | 无效参数 | 可以通过 console 日志查看错误原因及处理方式 |
NOT_SUPPORT_ERROR | 10001 | 浏览器不支持 | 可以通过 console 日志查看错误原因及处理方式 |
NETWORK_ERROR | 10002 | 网络环境异常 | 可以通过 console 日志查看错误原因及处理方式 |
NETWORK_REQUEST_ERROR | 10003 | 网络请求异常 | 可以通过 console 日志查看错误原因及处理方式 |
SERVER_ERROR | 10004 | 云信服务异常 | 可以通过 console 日志查看错误原因及处理方式 |
MEDIA_SERVER_ERROR | 10005 | 云信媒体服务异常 | 可以通过 console 日志查看错误原因及处理方式 |
SIGNALLING_ERROR | 10006 | 云信信令异常 | 可以通过 console 日志查看错误原因及处理方式 |
SIGNALLING_SERVER_ERROR | 10007 | 云信信令服务异常 | 可以通过 console 日志查看错误原因及处理方式 |
API_CALL_SEQUENCE_ERROR | 10008 | 接口调用顺序异常 | 可以通过 console 日志查看错误原因及处理方式 |
INVALID_OPERATION_ERROR | 10009 | 操作异常 | 可以通过 console 日志查看错误原因及处理方式 |
LOCALSTREAM_ERROR | 10010 | localStream 异常 | 可以通过 console 日志查看错误原因及处理方式 |
LOCALSTREAM_NOT_FOUND_ERROR | 10010 | localStream 未找到 | 可以通过 console 日志查看错误原因及处理方式 |
UNKNOWN_TYPE_ERROR | 10012 | 未知类型异常 | 可以通过 console 日志查看错误原因及处理方式 |
UNDEFINED_ERROR | 10013 | 未定义异常 | 可以通过 console 日志查看错误原因及处理方式 |
UNAVAILABLE_ERROR | 10014 | 不可用异常 | 可以通过 console 日志查看错误原因及处理方式 |
BANNED_BY_SERVER | 10015 | 被服务器禁言 | 可以通过 console 日志查看错误原因及处理方式 |
SOCKET_INIT_ERROR | 10016 | socket 异常 | 可以通过 console 日志查看错误原因及处理方式 |
REPEAT_JOIN_ERROR | 10101 | 重复进房错误 | 可以通过 console 日志查看错误原因及处理方式 |
MEETING_ERROR | 10102 | 会控异常 | 可以通过 console 日志查看错误原因及处理方式 |
ROOM_SERVER_ERROR | 10103 | 房间服务相关错误 | 可以通过 console 日志查看错误原因及处理方式 |
USER_NOT_IN_CHANNEL_ERROR | 10104 | 用户不在频道中错误 | 可以通过 console 日志查看错误原因及处理方式 |
EVENT_UPLOAD_ERROR | 10105 | 事件上报错误 | 可以通过 console 日志查看错误原因及处理方式 |
NOT_FOUND_ERROR | 10106 | 未找到异常 | 可以通过 console 日志查看错误原因及处理方式 |
SDP_ERROR | 10107 | SDP 异常 | 可以通过 console 日志查看错误原因及处理方式 |
ADD_TASK_FAILED_ERROR | 10201 | 添加推流任务失败 | 可以通过 console 日志查看错误原因及处理方式 |
DELETE_TASK_FAILED_ERROR | 10202 | 删除推流任务失败 | 可以通过 console 日志查看错误原因及处理方式 |
UPDATE_TASKS_FAILED_ERROR | 10203 | 更新推流任务失败 | 可以通过 console 日志查看错误原因及处理方式 |
TASK_ERROR | 10204 | 推流任务异常 | 可以通过 console 日志查看错误原因及处理方式 |
PLAY_NOT_START_ERROR | 10205 | 未开始播放异常 | 可以通过 console 日志查看错误原因及处理方式 |
APPDATA_OVERRIDE_ERROR | 10206 | appData 异常 | 可以通过 console 日志查看错误原因及处理方式 |
SET_BEAUTY_ERROR | 10401 | 开关基础美颜相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
SET_ADVANCED_BEAUTY_ERROR | 10402 | 开关高级美颜相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
SET_BODY_SEGMENT_ERROR | 10403 | 开关背景替换相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
FORMAT_AUDIO_ERROR | 10420 | 音频处理异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_MIX_FILE_ERROR | 10421 | 伴音相关文件加载状态异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_MIX_STATE_ERROR | 10422 | 伴音相关操作状态异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_EFFECT_STATE_ERROR | 10423 | 音效相关操作状态异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_EFFECT_FILE_LOST_ERROR | 10424 | 音效文件缺失 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_MIX_DECODE_FAILED_ERROR | 10425 | 伴音解码异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_MIXING_ERROR | 10426 | 伴音相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUDIO_EFFECT_ERROR | 10427 | 音效相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
SET_ENCRYPTION_MODE_ERROR | 10440 | 国密加密相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
PROXY_ERROR | 10441 | 云代理相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
RECORDING_ERROR | 10450 | 录制时参数异常相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
RECORDING_NOT_START_ERROR | 10451 | 录制未开始异常 | 可以通过 console 日志查看错误原因及处理方式 |
WATERMARKS_EXCEEDED_ERROR | 10460 | 水印数额超限相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
LBS_REQUEST_ERROR | 10461 | LBS 请求相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
LBS_JSON_ERROR | 10462 | LBS json 解析异常 | 可以通过 console 日志查看错误原因及处理方式 |
NO_STATS_ERROR | 10470 | 数据上报相关异常 | 可以通过 console 日志查看错误原因及处理方式 |
SET_CLIENT_ROLE_ERROR | 10490 | 用户角色修改异常 | 可以通过 console 日志查看错误原因及处理方式 |
AUTO_PLAY_NOT_ALLOWED | 41030 | 自动播放受限异常 | 可以通过 console 日志查看错误原因及处理方式 |
UNKNOWN | 99999 | 未知错误 | 可以通过 console 日志查看错误原因及处理方式 |
错误信息 | 错误原因 | 处理方案 |
---|---|---|
getUserMedia error: NotAllowedError | 用户拒绝了当前的浏览器实例访问音频、视频或屏幕分享的请求 | 用户需要授权摄像头/麦克风访问,才能进行音视频通话 |
getUserMedia error: NotFoundError | 找不到满足请求参数的媒体类型,如音频,视频 | 建议通话前进行设备检测,确认设备状态正常 |
getUserMedia error: NotReadableError | 操作系统上某个硬件、浏览器或者网页层面发生的错误导致设备无法被访问 | 请确保当前麦克风/摄像头没有被其他设备占用 |
getUserMedia error: OverconstrainedError | 浏览器无法获取到媒体设备的 deviceId,如 cameraId/microphoneId | 请确保 cameraId/microphoneId 是符合要求的非空字符串 |
getUserMedia error: TypeError | 当前使用的是 http 协议 | 请确保 当前使用的是 https 协议 |