NERtc Android SDK
简介

网易云信 NERTC SDK 提供完善的音视频通话开发框架,提供基于网络的点对点视频通话和语音通话功能,还提供多人视频和音频会议功能,支持通话中音视频设备控制和实时音视频模式切换,支持视频采集数据回调以实现美颜等自定义功能。

  • NERtc 接口类包含应用程序调用的主要方法。
  • NERtcEx 接口类包含应用程序调用的扩展方法。
  • NERtcCallback 类用于向应用程序发送用户状态回调通知。
  • NERtcCallbackEx 类用于向应用程序发送音视频信息回调通知。

错误码

在调用 SDK API 的过程中,SDK 可能会返回错误码或状态码,您可以根据错误码或状态码判断当前 SDK 或任务的状态。如果遇到未知的错误码,请联系技术支持排查。

当前 SDK API 的错误码如下:

房间管理

方法 功能 起始版本
NERtc#getInstance() 创建 RTC 引擎对象。 V3.5.0
NERtc#init() RTC 引擎对象初始化。 V3.5.0
NERtc#release() 销毁NERtc实例,释放资源。 V3.5.0
NERtcEx#setChannelProfile() 设置房间场景。 V3.6.0
NERtcEx#setClientRole() 设置用户角色。 V3.9.0
NERtc#joinChannel() 加入房间。 V3.5.0
NERtcEx#switchChannel() 直播场景中快速切换房间。 V4.1.0
NERtc#leaveChannel() 离开房间。 V3.5.0
NERtc#setParameters() 复杂参数设置接口。如果需要设置相关参数,请在调用 init 接口初始化之前调用此接口。 V3.5.0
NERtcEx#getConnectionState() 获取网络连接状态。 V3.5.0

房间事件

事件 描述 起始版本
NERtcCallback#onClientRoleChange() 用户角色已切换回调。 V3.9.0
NERtcCallback#onJoinChannel() 加入房间回调。 V3.5.0
NERtcCallbackEx#onReJoinChannel() 重新加入房间回调。 V3.5.0
NERtcCallback#onLeaveChannel() 离开房间回调。 V3.5.0
NERtcCallbackEx#onReconnectingStart() 开始重连回调。 V3.7.0
NERtcCallback#onUserJoined() 远端用户加入当前房间回调。 V3.5.0
NERtcCallback#onUserLeave() 远端用户离开当前房间回调。 V3.5.0
NERtcCallback#onDisconnect() 服务器连接断开回调。 V3.5.0
NERtcCallbackEx#onConnectionTypeChanged() 本地网络类型已改变回调 V3.5.0
NERtcCallbackEx#onConnectionStateChanged() 网络连接状态已改变回调 V3.8.0

音频管理

方法 功能 起始版本
NERtc#setAudioProfile() 设置音频编码配置 V3.5.0
NERtcEx#adjustRecordingSignalVolume() 调节录音音量 V3.5.0
NERtcEx#adjustPlaybackSignalVolume() 调节播放音量 V3.5.0
NERtcEx#adjustUserPlaybackSignalVolume() 调节本地播放的指定远端用户的信号音量。 V4.2.1
NERtc#enableLocalAudio() 开关本地音频采集 V3.5.0
NERtcEx#muteLocalAudioStream() 开关本地音频发送 V3.5.0
NERtc#subscribeRemoteAudioStream() 订阅/取消订阅指定音频流。 V3.5.0
NERtc#subscribeAllRemoteAudioStreams() 订阅/取消订阅所有远端音频流 V3.5.0
NERtcEx#setAudioProcessObserver() 注册音频处理观测器,设置音频处理回调。 V3.9.0


事件 描述 起始版本
NERtcAudioProcessObserver#onAudioHasHowling() 检测到啸叫回调。 V3.9.0

视频管理

方法 功能 起始版本
NERtc#enableLocalVideo() 开关本地视频 V3.5.0
NERtc#setLocalVideoConfig() 设置视频发送配置 V3.5.0
NERtc#setupLocalVideoCanvas() 设置本地用户视图 V3.5.0
NERtc#setupRemoteVideoCanvas() 设置远端用户视图 V3.5.0
NERtc#startVideoPreview() 开启视频预览 V3.5.0
NERtc#stopVideoPreview() 停止视频预览 V3.5.0
NERtcEx#muteLocalVideoStream() 开关本地视频发送 V3.5.0
NERtc#subscribeRemoteVideoStream() 订阅 / 取消订阅指定远端用户的视频流 V3.5.0
NERtcVideoView#setScalingType() 设置显示模式 V3.5.0
NERtcEx#postOnGLThread() 将操作设置到具有GLContext的线程中,如销毁第三方滤镜资源 V3.5.0
NERtcEx#enableSuperResolution() 启用或停止 AI 超分。 V4.4.0

本地媒体事件

事件 描述 起始版本
NERtcCallbackEx#onFirstAudioFrameDecoded() 已解码远端音频首帧的回调 V3.9.0
NERtcCallbackEx#onFirstVideoFrameDecoded() 已解码远端视频首帧的回调 V3.9.0
NERtcCallbackEx#onFirstVideoDataReceived() 远端视频首帧回调 V3.9.0
NERtcCallbackEx#onFirstAudioDataReceived() 远端音频首帧回调 V3.9.0

远端媒体事件

方法 功能 起始版本
NERtcCallbackEx#onUserVideoProfileUpdate() 远端用户更改视频分辨率类型的回调 V3.5.0
NERtcCallbackEx#onUserVideoMute() 远端用户关闭视频发送的回调 V3.5.0
NERtcCallbackEx#onUserAudioMute() 远端用户关闭音频发送的回调 V3.5.0
NERtcCallback#onUserAudioStart() 远端用户开启音频的回调 V3.5.0
NERtcCallback#onUserAudioStop() 远端用户关闭音频的回调 V3.5.0
NERtcCallback#onUserVideoStart() 远端用户开启视频的回调 V3.5.0
NERtcCallback#onUserVideoStop() 远端用户关闭视频的回调 V3.5.0

数据统计事件

方法 功能 起始版本
NERtcStatsObserver#onRtcStats() 当前通话统计回调,每2秒触发一次 V3.5.0
NERtcStatsObserver#onNetworkQuality() 通话中每个用户的网络上下行质量报告回调 V3.5.0
NERtcStatsObserver#onLocalAudioStats() 本地音频流统计信息回调 V3.5.0
NERtcStatsObserver#onLocalVideoStats() 本地视频流统计信息回调 V3.5.0
NERtcStatsObserver#onRemoteAudioStats() 通话中远端音频流的统计信息回调 V3.5.0
NERtcStatsObserver#onRemoteVideoStats() 通话中远端视频流的统计信息回调 V3.5.0
NERtcEx#setStatsObserver() 设置统计信息回调 V3.5.0

屏幕共享

方法 功能 起始版本
NERtcEx#setupLocalSubStreamVideoCanvas() 设置本端的辅流视频回放画布 V3.9.0
NERtcEx#setupRemoteSubStreamVideoCanvas() 设置远端的辅流视频回放画布 V3.9.0
NERtcEx#startScreenCapture() 开启屏幕共享 V3.5.0
NERtcEx#stopScreenCapture() 停止屏幕共享 V3.5.0
NERtcEx#subscribeRemoteSubStreamVideo() 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据 V3.9.0


事件 描述 起始版本
NERtcCallbackEx#onUserSubStreamVideoStart() 远端用户开启屏幕共享辅流通道的回调 V3.9.0
NERtcCallbackEx#onUserSubStreamVideoStop() 远端用户停止屏幕共享辅流通道的回调 V3.9.0

视频大小流

方法 功能 起始版本
NERtcEx#enableDualStreamMode() 设置是否开启视频大小流模式。 V3.5.0

音视频流回退

方法 功能 起始版本
NERtcEx#setLocalPublishFallbackOption() 设置弱网条件下发布的音视频流回退选项。 V4.3.0
NERtcEx#setRemoteSubscribeFallbackOption() 设置弱网条件下订阅的音视频流回退选项。 V4.3.0
NERtcEx#setLocalMediaPriority() 设置本地用户的媒体流优先级。 V4.2.0
事件 描述 起始版本
NERtcCallbackEx#onLocalPublishFallbackToAudioOnly() 本地发布流已回退为音频流或恢复为音视频流回调。 V4.3.0
NERtcCallbackEx#onRemoteSubscribeFallbackToAudioOnly() 远端订阅流已回退为音频流或恢复为音视频流回调。 V4.3.0

音乐文件播放及混音

方法 功能 起始版本
NERtcEx#startAudioMixing() 开始播放音乐文件 V3.5.0
NERtcEx#stopAudioMixing() 停止播放音乐文件 V3.5.0
NERtcEx#pauseAudioMixing() 暂停播放音乐文件 V3.5.0
NERtcEx#resumeAudioMixing() 恢复播放音乐文件 V3.5.0
NERtcEx#setAudioMixingPlaybackVolume() 设置音乐文件播放音量 V3.5.0
NERtcEx#setAudioMixingSendVolume() 设置音乐文件的发送音量 V3.5.0
NERtcEx#getAudioMixingPlaybackVolume() 获取音乐文件的播放音量 V3.5.0
NERtcEx#getAudioMixingSendVolume() 获取音乐文件的发送音量 V3.5.0
NERtcEx#getAudioMixingDuration() 获取音乐文件的总长度 V3.5.0
NERtcEx#setAudioMixingPosition() 获取音乐文件的播放进度 V3.5.0
NERtcEx#getAudioMixingCurrentPosition() 设置音乐文件的播放进度 V3.5.0
事件 描述 起始版本
NERtcCallbackEx#onAudioMixingStateChanged() 本地用户的音乐文件播放状态改变回调 V3.5.0
NERtcCallbackEx#onAudioMixingTimestampUpdate() 本地用户的音乐文件播放进度回调 V3.5.0

音效文件播放管理

方法 功能 起始版本
NERtcEx#getEffectPlaybackVolume() 获取音效文件播放音量。 V3.5.0
NERtcEx#setEffectPlaybackVolume() 设置音效文件播放音量 V3.5.0
NERtcEx#playEffect() 播放指定音效文件 V3.5.0
NERtcEx#stopEffect() 停止播放指定音效文件 V3.5.0
NERtcEx#stopAllEffects() 停止播放所有音效文件 V3.5.0
NERtcEx#pauseEffect() 暂停音效文件播放 V3.5.0
NERtcEx#pauseAllEffects() 暂停所有音效文件播放 V3.5.0
NERtcEx#resumeEffect() 恢复播放指定音效文件 V3.5.0
NERtcEx#resumeAllEffects() 恢复播放所有音效文件 V3.5.0
NERtcEx#setEffectSendVolume() 调节音效文件发送音量 V3.5.0
NERtcEx#getEffectSendVolume() 获取音效文件发送音量 V3.5.0
NERtcEx#getEffectDuration() 获取音效文件时长。 V4.4.0
NERtcEx#getEffectCurrentPosition() 获取音效的播放进度。 V4.4.0
事件 描述 起始版本
NERtcCallbackEx#onAudioEffectFinished() 本地音效文件播放已结束回调 V3.5.0

变声与混响

方法 功能 起始版本
NERtcEx#setAudioEffectPreset() 设置 SDK 预设的人声的变声音效。 4.1.0
NERtcEx#setVoiceBeautifierPreset() 设置 SDK 预设的美声效果。 4.0.0
NERtcEx#setLocalVoiceEqualization() 设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。 4.0.0
NERtcEx#setLocalVoicePitch() 设置本地语音音调。 4.1.0

媒体增强信息

方法 功能 起始版本
NERtcEx#sendSEIMsg() 通过主流通道发送媒体补充增强信息。 V4.0.0
NERtcEx#sendSEIMsg() 发送媒体补充增强信息。通过本接口可指定发送 SEI 时使用主流或辅流通道。 V4.0.0


事件 描述 起始版本
NERtcCallbackEx#onRecvSEIMsg() 收到远端流的 SEI 内容回调。 V4.0.0

旁路推流

注意:该组方法仅适用于互动直播 2.0。

方法 功能 起始版本
NERtcEx#addLiveStreamTask() 添加房间推流任务 V3.5.0
NERtcEx#updateLiveStreamTask() 更新修改房间推流任务 V3.5.0
NERtcEx#removeLiveStreamTask() 删除房间推流任务 V3.5.0


事件 描述 起始版本
NERtcCallbackEx#onLiveStreamState() 直播推流状态回调 V3.5.0

跨房间流媒体转发

方法 功能 起始版本
NERtcEx#startChannelMediaRelay() 开始跨房间媒体流转发。 V4.2.1
NERtcEx#updateChannelMediaRelay() 更新媒体流转发的目标房间。 V4.2.1
NERtcEx#stopChannelMediaRelay() 停止跨房间媒体流转发。 V4.2.1
事件 描述 起始版本
NERtcCallbackEx#onMediaRelayStatesChange() 跨房间媒体流转发状态发生改变回调。 V4.2.1
NERtcCallbackEx#onMediaRelayReceiveEvent() 媒体流相关转发事件回调。 V4.2.1

音量提示

方法 功能 起始版本
NERtcEx#enableAudioVolumeIndication() 启用说话者音量提示 V3.5.0
事件 描述 起始版本
NERtcCallbackEx#onRemoteAudioVolumeIndication() 提示房间内谁正在说话及说话者音量的回调 V3.5.0
NERtcCallbackEx#onLocalAudioVolumeIndication() 提示房间内本地用户瞬时音量的回调 V3.5.0

耳返

方法 功能 起始版本
NERtcEx#enableEarback() 开启耳返功能 V3.5.0
NERtcEx#setEarbackVolume() 设置耳返音量 V3.5.0

音频播放路由

方法 功能 起始版本
NERtcEx#setSpeakerphoneOn() 设置扬声器是否开启 V3.5.0
NERtcEx#isSpeakerphoneOn() 获取扬声器是否开启 V3.5.0

视频大小流

方法 功能 起始版本
NERtcCallbackEx#enableDualStreamMode() 设置是否开启视频大小流模式。 V3.7.0

自定义音频采集与渲染

方法 功能 起始版本
NERtcEx#setExternalAudioSource() 启用外部自定义音频数据输入功能,并设置采集参数。 V3.9.0
NERtcEx#pushExternalAudioFrame() 将外部音频数据帧推送给内部引擎。 V3.9.0
NERtcEx#setExternalAudioRender() 设置外部音频渲染。 V4.0.0
NERtcEx#pullExternalAudioFrame() 拉取外部音频数据。 V4.0.0

自定义视频采集

方法 功能 起始版本
NERtcEx#setExternalVideoSource() 配置外部视频源 V3.5.0
NERtcEx#pushExternalVideoFrame() 推送外部视频帧 V3.5.0

原始音频数据

方法 功能 起始版本
NERtcEx#setRecordingAudioFrameParameters() 设置录制的声音格式 V3.5.0
NERtcEx#setPlaybackAudioFrameParameters() 设置播放的声音格式 V3.5.0
NERtcEx#setAudioFrameObserver() 注册语音观测器对象 V3.5.0
NERtcEx#setMixedAudioFrameParameters() 设置采集和播放后的混合后的采样率。需要在加入房间之前调用该接口 V3.9.0
事件 描述 起始版本
NERtcAudioFrameObserver#onRecordFrame() 采集音频数据回调。 V3.5.0
NERtcAudioFrameObserver#onPlaybackFrame() 播放音频数据回调。 V3.5.0
NERtcAudioFrameObserver#onMixedAudioFrame() 音频采集与播放混合后数据帧回调 V3.5.0
NERtcAudioFrameObserver#onPlaybackAudioFrameBeforeMixingWithUserID() 某一远端用户的原始音频帧回调 V3.5.0

原始视频数据

事件 描述 起始版本
NERtcEx#setVideoCallback() 采集视频数据回调。 V3.5.0
事件 描述 起始版本
NERtcVideoCallback#onVideoCallback() 本地视频数据采集回调 V3.5.0

截图

方法 功能 起始版本
NERtcEx#takeLocalSnapshot() 本地视频画面截图。 V4.2.0
NERtcEx#takeRemoteSnapshot() 远端视频画面截图。 V4.2.0
事件 描述 起始版本
NERtcTakeSnapshotCallback#onTakeSnapshotResult() 截图结果回调。 V4.2.0

水印

方法 功能 起始版本
NERtcEx#setLocalCanvasWatermarkConfigs() 添加本地视频画布水印。 V4.2.0
NERtcEx#setRemoteCanvasWatermarkConfigs() 添加远端视频画布水印。 V4.2.0

加密

方法 功能 起始版本
NERtcEx#enableEncryption() 开启或关闭媒体流加密。 V4.4.0

客户端音频录制

方法 功能 起始版本
NERtcEx#startAudioRecording() 开始客户端录音。 V4.2.0
NERtcEx#stopAudioRecording() 停止客户端录音。 V4.2.0
事件 描述 起始版本
NERtcCallbackEx#onAudioRecording() 音频录制状态回调。 V4.2.0

设备管理

方法 功能 起始版本
NERtc#checkPermission() 设备权限检查,比如麦克风、摄像头权限 V3.5.0
NERtcEx#switchCamera() 切换前置/后置摄像头 V3.5.0
NERtcEx#isCameraZoomSupported() 检测设备是否支持摄像头缩放功能 V3.5.0
NERtcEx#setCameraZoomFactor() 设置摄像头缩放比例 V3.5.0
NERtcEx#getCameraCurrentZoom() 获取当前缩放比例 V3.5.0
NERtcEx#getCameraMaxZoom() 获取摄像头支持的最大视频缩放比例 V3.5.0
NERtcEx#isCameraTorchSupported() 检测设备是否支持闪光灯常开 V3.5.0
NERtcEx#isCameraFocusSupported() 检测设备是否支持手动对焦功能 V3.5.0
NERtcEx#setCameraFocusPosition() 设置当前摄像头聚焦点位置 V3.5.0
NERtcEx#isCameraExposurePositionSupported() 检测设备是否支持手动曝光功能 V3.5.0
NERtcEx#setCameraExposurePosition() 设置手动曝光位置 V3.5.0
NERtcEx#setCameraTorchOn() 设置是否打开闪光灯 V3.5.0
NERtcEx#setPlayoutDeviceMute() 设置音频播放设备的状态 V3.5.0
NERtcEx#isPlayoutDeviceMute() 获取当前音频播放设备是否静音 V3.5.0
NERtcEx#setRecordDeviceMute() 设置录音设备的状态 V3.5.0
NERtcEx#isRecordDeviceMute() 获取当前音频采集设备是否静音 V3.5.0
NERtc#version() NERtc SDK版本号 V3.5.0


方法 功能 起始版本
NERtcCallbackEx#onAudioDeviceChanged() 音频设备状态更改回调 V3.5.0
NERtcCallbackEx#onAudioDeviceStateChange() 音频设备状态切换回调 V3.5.0
NERtcCallbackEx#onVideoDeviceStageChange() 视频设备状态切换回调 V3.5.0
NERtcCallbackEx#onCameraFocusChanged() 摄像头对焦区域已改变回调 V3.5.0
NERtcCallbackEx#onCameraExposureChanged() 摄像头曝光区域已改变回调 V3.5.0

故障排查

方法 功能 起始版本
NERtc#uploadSdkInfo() 上传SDK日志信息 V3.5.0
NERtc#startAudioDump() 开始记录音频 dump V3.5.0
NERtc#stopAudioDump() 结束记录音频 dump V3.5.0


事件 描述 起始版本
NERtcCallbackEx#onWarning() 发生警告回调 V3.5.0
NERtcCallbackEx#onError() 引擎发生了运行时的错误,需要用户干预 V3.5.0