NERTC SDK 提供完善的音视频通话开发框架,提供基于网络的视频通话和语音通话功能,还提供多人视频和音频会议功能,支持通话中音视频设备控制和实时音视频模式切换,支持视频采集数据回调以实现美颜等自定义功能。
- NERtcEngine 类包含应用程序调用的主要方法。
- NERtcDeviceManager 类包含设备调用的主要方法。
- NERtcVideoRenderer 类包含视频管理的 Flutter 单独封装的方法。
- NERtcAudioMixingManager 类包含伴音调用的主要方法。
- NERtcAudioEffectManager 类包含音效调用的主要方法。
- NERtcChannelEventCallback 类用于向应用程序发送用户状态回调通知。
- NERtcDeviceEventCallback 类用于向应用程序发送设备状态回调通知。
- NERtcAudioMixingEventCallback 类用于向应用程序发送伴音状态回调通知。
- NERtcAudioEffectEventCallback 类用于向应用程序发送音效状态回调通知。
- NERtcStatsEventCallback 接口类用于向应用程序发送媒体状态类回调通知。
房间管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| create | 创建 NERTC 实例。 | V3.9.0 |
| release | 销毁 NERTC 实例,释放资源。 | V3.9.0 |
| setChannelProfile | 设置房间场景。如果需要设置房间场景,必须在调用 create 之后、调用 joinChannel 之前调用此接口。 | V3.9.0 |
| setClientRole | 设置用户角色。 | V3.9.0 |
| joinChannel | 加入房间。 | V3.9.0 |
| leaveChannel | 离开房间。 | V3.9.0 |
| getConnectionState | 主动获取网络连接状态。 | V3.9.0 |
| switchChannel | 快速切换音视频房间。 | V4.6.52 |
| setParameters | 设置音视频通话的相关参数。 此接口提供技术预览或特别定制功能。 | V4.6.52 |
| getConnectionState | 获取连接状态。 | V4.6.52 |
| updatePermissionKey | 更新权限密钥。 | V4.6.52 |
房间事件
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| onJoinChannel | 加入房间回调。 | V3.9.0 |
| onLeaveChannel | 退出房间回调。 | V3.9.0 |
| onUserJoined | 远端用户加入当前房间回调。 | V3.9.0 |
| onUserLeave | 远端用户离开当前房间回调。 | V3.9.0 |
| onReJoinChannel | 重新加入房间回调。 | V3.9.0 |
| onClientRoleChange | 用户角色已切换回调。 | V3.9.0 |
| onConnectionStateChanged | 网络连接状态已改变回调。 | V3.9.0 |
| onConnectionTypeChanged | 本地网络类型已改变回调。 | V3.9.0 |
| onDisconnect | 从房间断开的回调。 | V3.9.0 |
| onReconnectingStart | 重连开始回调。 | V3.9.0 |
音频管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| setAudioProfile | 设置音频编码配置 | V3.9.0 |
| adjustRecordingSignalVolume | 调节录音音量 | V3.9.0 |
| adjustPlaybackSignalVolume | 调节播放音量 | V3.9.0 |
| adjustUserPlaybackSignalVolume | 调节本地播放的指定远端用户的信号音量。 | V4.6.52 |
| enableLocalAudio | 开关本地音频采集 | V3.9.0 |
| muteLocalAudioStream | 开关本地音频发送 | V3.9.0 |
| subscribeRemoteAudio | 订阅/取消订阅指定音频流 | V3.9.0 |
| subscribeAllRemoteAudio | 订阅/取消订阅所有远端音频流 | V3.9.0 |
| setRemoteHighPriorityAudioStream | 设置远端用户音频流的高优先级 | V4.6.52 |
| enableLoopbackRecording | 开启或关闭音频共享 | V4.6.52 |
| adjustLoopBackRecordingSignalVolume | 调整共享音频音量 | V4.6.52 |
| enableLocalSubStreamAudio | 开启或关闭音频辅流 | V4.6.52 |
| subscribeRemoteSubStreamAudio | 取消或恢复订阅指定远端用户的音频主流 | V4.6.52 |
| muteLocalSubStreamAudio | 静音或解除静音本地上行的音频辅流 | V4.6.52 |
| setAudioSubscribeOnlyBy | 设置自己的音频只能被房间内指定的人订阅 | V4.6.52 |
| enableMediaPub | 开启或关闭本地媒体流(主流)的发送 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onAudioHasHowling | 检测到啸叫回调 | V3.9.0 |
视频管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| enableLocalVideo | 开关本地视频 | V3.9.0 |
| setLocalVideoConfig | 设置视频发送配置 | V3.9.0 |
| startVideoPreview | 开启视频预览 | V3.9.0 |
| stopVideoPreview | 停止视频预览 | V3.9.0 |
| muteLocalVideoStream | 开关本地视频发送 | V3.9.0 |
| subscribeRemoteVideo | 订阅 / 取消订阅指定远端用户的视频流 | V3.9.0 |
| attachToLocalVideo | 关联本地用户视频视图 | V3.9.0 |
| attachToRemoteVideo | 关联远端用户视频视图 | V3.9.0 |
| setCameraCaptureConfig | 设置本地摄像头的采集偏好等配置 | V4.6.52 |
| enableSuperResolution | 启用或停止 AI 超分 | V4.6.52 |
| attachToRemoteSubStreamVideo | 添加为远端用户辅流视频画布 | V4.6.52 |
| attachToLocalSubStreamVideo | 添加为本地用户辅流视频画布 | V4.6.52 |
| enableVirtualBackground | 开启/关闭虚拟背景 | V4.6.52 |
| enableVideoCorrection | 是否启用视频图像畸变矫正 | V4.6.52 |
| setVideoCorrectionConfig | 设置视频图像矫正参数 | V4.6.52 |
| setMirror | 设置画面是否镜像 | V4.6.52 |
| setExternalVideoSource | 开启外部视频源数据输入 | V5.4.7 |
| pushExternalVideoFrame | 推送外部视频数据帧 | V5.4.7 |
本地媒体事件
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onFirstAudioFrameDecoded | 已解码远端音频首帧的回调 | V3.9.0 |
| onFirstVideoFrameDecoded | 已解码远端视频首帧的回调 | V3.9.0 |
| onFirstAudioDataReceived | 远端音频首帧回调 | V3.9.0 |
| onFirstVideoDataReceived | 远端视频首帧回调 | V3.9.0 |
| onMediaRightChange | 服务端禁言音视频权限变化回调 | V4.6.52 |
| onVirtualBackgroundSourceEnabled | 通知虚拟背景是否成功开启的回调 | V4.6.52 |
远端媒体事件
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onUserVideoProfileUpdate | 远端用户更改视频分辨率类型的回调 | V3.9.0 |
| onUserVideoMute | 远端用户关闭视频发送的回调 | V3.9.0 |
| onUserAudioMute | 远端用户关闭音频发送的回调 | V3.9.0 |
| onUserAudioStart | 远端用户开启音频的回调 | V3.9.0 |
| onUserAudioStop | 远端用户关闭音频的回调 | V3.9.0 |
| onUserVideoStart | 远端用户开启视频的回调 | V3.9.0 |
| onUserVideoStop | 远端用户关闭视频的回调 | V3.9.0 |
| onUserSubStreamAudioMute | 远端用户暂停或恢复发送音频辅流的回调 | V4.6.52 |
| onUserSubStreamAudioStart | 远端用户开启音频辅流回调 | V4.6.52 |
| onUserSubStreamAudioStop | 远端用户停用音频辅流回调 | V4.6.52 |
数据统计事件
SDK 定期向 App 报告以下统计信息,每 2 秒触发一次。
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| setStatsEventCallback | 设置统计信息回调 | V3.9.0 |
| clearStatsEventCallback | 清除统计信息回调 | V3.9.0 |
| onRtcStats | 当前通话统计回调,每2秒触发一次 | V3.9.0 |
| onNetworkQuality | 通话中每个用户的网络上下行质量报告回调 | V3.9.0 |
| onLocalAudioStats | 本地音频流统计信息回调 | V3.9.0 |
| onLocalVideoStats | 本地视频流统计信息回调 | V3.9.0 |
| onRemoteAudioStats | 通话中远端音频流的统计信息回调 | V3.9.0 |
| onRemoteVideoStats | 通话中远端视频流的统计信息回调 | V3.9.0 |
视频大小流
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| enableDualStreamMode | 设置是否开启视频大小流模式 | V3.9.0 |
| setLocalPublishFallbackOption | 设置弱网条件下发布的音视频流回退选项 | V4.6.52 |
| setRemoteSubscribeFallbackOption | 设置弱网条件下订阅的音视频流回退选项。 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onLocalPublishFallbackToAudioOnly | 本地发布流已回退为音频流、或已恢复为音视频流回调。 | V4.6.52 |
| onRemoteSubscribeFallbackToAudioOnly | 订阅的远端流已回退为音频流、或已恢复为音视频流回调。 | V4.6.52 |
通话前网络测试
| 方法 | 功能 | 起始版本 |
|---|---|---|
| startLastmileProbeTest | 开始通话前网络质量探测。 | V4.6.52 |
| stopLastmileProbeTest | 停止通话前网络质量探测。 | V4.6.52 |
| 事件 | 描述 | 起始版本 |
|---|---|---|
| onLastmileQuality | 报告本地用户的网络质量。 | V4.6.52 |
| onLastmileProbeResult | 报告通话前网络上下行 last mile 质量。 | V4.6.52 |
音乐文件播放管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| audioMixingManager | 获取伴音管理模块 | V3.9.0 |
| startAudioMixing | 开始播放音乐文件 | V3.9.0 |
| stopAudioMixing | 停止播放音乐文件 | V3.9.0 |
| pauseAudioMixing | 暂停播放音乐文件 | V3.9.0 |
| resumeAudioMixing | 恢复播放音乐文件 | V3.9.0 |
| setAudioMixingPlaybackVolume | 设置音乐文件播放音量 | V3.9.0 |
| setAudioMixingSendVolume | 设置音乐文件的发送音量 | V3.9.0 |
| getAudioMixingPlaybackVolume | 获取音乐文件的播放音量 | V3.9.0 |
| getAudioMixingSendVolume | 获取音乐文件的发送音量 | V3.9.0 |
| getAudioMixingDuration | 获取音乐文件的总长度 | V3.9.0 |
| setAudioMixingPosition | 设置音乐文件的播放进度 | V3.9.0 |
| getAudioMixingCurrentPosition | 获取音乐文件当前播放进度 | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| setEventCallback | 设置伴音事件回调 | V3.9.0 |
| clearEventCallback | 清除伴音事件回调 | V3.9.0 |
| onAudioMixingStateChanged | 本地用户的音乐文件播放状态改变回调 | V3.9.0 |
| onAudioMixingTimestampUpdate | 音乐文件播放进度回调 | V3.9.0 |
音效文件播放管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| audioEffectManager | 获取音效管理模块 | V3.9.0 |
| getEffectSendVolume | 获取音效文件播放音量 | V3.9.0 |
| setEffectSendVolume | 设置音效文件播放音量 | V3.9.0 |
| playEffect | 播放指定音效文件 | V3.9.0 |
| stopEffect | 停止播放指定音效文件 | V3.9.0 |
| stopAllEffects | 停止播放所有音效文件 | V3.9.0 |
| pauseEffect | 暂停音效文件播放 | V3.9.0 |
| pauseAllEffect | 暂停所有音效文件播放 | V3.9.0 |
| resumeEffect | 恢复播放指定音效文件 | V3.9.0 |
| resumeAllEffect | 恢复播放所有音效文件 | V3.9.0 |
| setEffectSendVolume | 设置音效文件的发送音量 | V3.9.0 |
| getEffectSendVolume | 获取音效文件的发送音量 | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| setEventCallback | 设置音效事件回调 | V3.9.0 |
| clearEventCallback | 清除音效事件回调 | V3.9.0 |
| onAudioEffectFinished | 音效结束回调 | V3.9.0 |
变声与混响
| 方法 | 功能 | 起始版本 |
|---|---|---|
| setAudioEffectPreset | 设置 SDK 预设的人声的变声音效。 | V4.6.52 |
| setVoiceBeautifierPreset | 设置 SDK 预设的美声效果。 | V4.6.52 |
| setLocalVoiceEqualization | 设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。 | V4.6.52 |
| setLocalVoicePitch | 设置本地语音音调。 | V4.6.52 |
| setLocalVoiceReverbParam | 开启本地语音混响效果。 | V4.6.52 |
音量提示
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| enableAudioVolumeIndication | 启用说话者音量提示 | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onRemoteAudioVolumeIndication | 提示房间内谁正在说话及说话者音量的回调 | V3.9.0 |
| onLocalAudioVolumeIndication | 本地用户瞬时音量的回调 | V3.9.0 |
音频播放路由
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| setSpeakerphoneOn | 设置扬声器是否开启 | V3.9.0 |
| isSpeakerphoneOn | 获取扬声器是否开启 | V3.9.0 |
耳返
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| enableEarBack | 开启耳返功能 | V3.9.0 |
| setEarBackVolume | 设置耳返音量 | V3.9.0 |
媒体增强信息SEI
| 方法 | 功能 | 起始版本 |
|---|---|---|
| sendSEIMsg | 通过主流通道发送媒体补充增强信息。 | V4.6.52 |
| 事件 | 描述 | 起始版本 |
|---|---|---|
| onRecvSEIMsg | 收到远端流的 SEI 内容回调。 | V4.6.52 |
旁路推流
方法调用后,在通话中有效
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| addLiveStreamTask | 添加房间推流任务 | V3.9.0 |
| updateLiveStreamTask | 更新修改房间推流任务 | V3.9.0 |
| removeLiveStreamTask | 删除房间推流任务 | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onLiveStreamState | 直播推流状态回调 | V3.9.0 |
跨房间媒体流转发
| 方法 | 功能 | 起始版本 |
|---|---|---|
| startChannelMediaRelay | 开始跨房间媒体流转发。 | V4.6.52 |
| updateChannelMediaRelay | 更新媒体流转发的目标房间。 | V4.6.52 |
| stopChannelMediaRelay | 停止跨房间媒体流转发。 | V4.6.52 |
| 事件 | 描述 | 起始版本 |
|---|---|---|
| onMediaRelayStatesChange | 跨房间媒体流转发状态发生改变回调。 | V4.6.52 |
| onMediaRelayReceiveEvent | 媒体流相关转发事件回调。 | V4.6.52 |
屏幕共享
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| startScreenCapture | 开启屏幕共享 | V3.9.0 |
| stopScreenCapture | 停止屏幕共享 | V3.9.0 |
| subscribeRemoteSubStreamVideo | 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据 | V3.9.0 |
| attachToLocalSubStreamVideo | 设置本端的辅流视频回放画布 | V3.9.0 |
| attachToRemoteSubStreamVideo | 设置远端的辅流视频回放画布 | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onUserSubStreamVideoStart | 远端用户开启屏幕共享辅流通道的回调 | V3.9.0 |
| onUserSubStreamVideoStop | 远端用户停止屏幕共享辅流通道的回调 | V3.9.0 |
美颜
| 方法 | 功能 | 起始版本 |
|---|---|---|
| startBeauty | 开启美颜功能模块 | V4.6.52 |
| stopBeauty | 结束美颜功能模块 | V4.6.52 |
| enableBeauty | 暂停或恢复美颜效果 | V4.6.52 |
| setBeautyEffect | 设置美颜效果 | V4.6.52 |
| addBeautyFilter | 添加滤镜效果 | V4.6.52 |
| removeBeautyFilter | 移除滤镜 | V4.6.52 |
| setBeautyFilterLevel | 设置滤镜强度 | V4.6.52 |
自定义音视频采集与渲染
| 方法 | 功能 | 起始版本 |
|---|---|---|
| setStreamAlignmentProperty | 对齐本地系统与服务端的时间 | V4.6.52 |
| getNtpTimeOffset | 获取本地系统时间与服务端时间差值 | V4.6.52 |
| setExternalVideoSource | 开启外部视频源数据输入 | V5.4.7 |
| pushExternalVideoFrame | 推送外部视频数据帧 | V5.4.7 |
截图
| 方法 | 功能 | 起始版本 |
|---|---|---|
| takeLocalSnapshot | 本地视频画面截图。 | V4.6.52 |
| takeRemoteSnapshot | 远端视频画面截图。 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onTakeSnapshotResult | 截图结果回调 | V4.6.52 |
水印
| 方法 | 功能 | 起始版本 |
|---|---|---|
| setLocalVideoWatermarkConfigs | 添加本地视频水印 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onLocalVideoWatermarkState | 水印结果回调 | V4.6.52 |
加密
| 方法 | 功能 | 起始版本 |
|---|---|---|
| enableEncryption | 开启或关闭媒体流加密 | V4.6.52 |
客户端音频录制
| 方法 | 功能 | 起始版本 |
|---|---|---|
| startAudioRecording | 开始客户端录音。 | V4.6.52 |
| startAudioRecordingWithConfig | 开始客户端录音。 | V4.6.52 |
| stopAudioRecording | 停止客户端录音。 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onAudioRecording | 音频录制状态回调 | V4.6.52 |
云代理
| 方法 | 功能 | 起始版本 |
|---|---|---|
| setCloudProxy | 开启并设置云代理服务 | V4.6.52 |
设备管理
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| deviceManager | 获取设备管理模块 | V3.9.0 |
| switchCamera | 切换前置/后置摄像头 | V3.9.0 |
| switchCameraWithPosition | 指定前置/后置摄像头 | V4.6.52 |
| setCameraZoomFactor | 设置摄像头缩放比例 | V3.9.0 |
| getCameraMaxZoom | 获取摄像头支持的最大视频缩放比例 | V3.9.0 |
| setCameraTorchOn | 设置是否打开闪光灯 | V3.9.0 |
| setCameraFocusPosition | 设置当前摄像头聚焦点位置 | V3.9.0 |
| setPlayoutDeviceMute | 设置音频播放设备的状态 | V3.9.0 |
| isPlayoutDeviceMute | 获取当前音频播放设备是否静音 | V3.9.0 |
| setRecordDeviceMute | 设置录音设备的状态 | V3.9.0 |
| isRecordDeviceMute | 获取当前音频采集设备是否静音 | V3.9.0 |
| getCurrentCamera | 查看当前摄像头配置 | V4.6.52 |
| isCameraZoomSupported | 检测设备当前使用的摄像头是否支持缩放功能 | V4.6.52 |
| getCameraCurrentZoom | 获取当前缩放比例 | V4.6.52 |
| isCameraTorchSupported | 检测设备是否支持闪光灯常亮 | V4.6.52 |
| isCameraFocusSupported | 检测设备是否支持手动对焦功能 | V4.6.52 |
| isCameraExposurePositionSupported | 检测设备是否支持手动曝光功能 | V4.6.52 |
| setCameraExposurePosition | 设置摄像头的手动曝光位置 | V4.6.52 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| setEventCallback | 设置设备事件回调 | V3.9.0 |
| clearEventCallback | 清除设备事件回调 | V3.9.0 |
| onAudioDeviceChanged | 音频播放设备发生改变 | V3.9.0 |
| onAudioDeviceStateChange | 音频设备状态切换回调 | V3.9.0 |
| onVideoDeviceStageChange | 视频设备状态切换回调 | V3.9.0 |
故障排查
| 方法 | 功能描述 | 起始版本 |
|---|---|---|
| uploadSdkInfo | 上传SDK日志信息 | V3.9.0 |
| startAudioDump | 开始记录音频 dump | V3.9.0 |
| stopAudioDump | 结束记录音频 dump | V3.9.0 |
| 事件 | 事件描述 | 起始版本 |
|---|---|---|
| onWarning | 发生警告回调 | V3.9.0 |
| onError | 引擎发生了运行时的错误,需要用户干预 | V3.9.0 |