NERtc iOS SDK
简介

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

错误码

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

当前 SDK API 的错误码如下,各类错误码页面顶部可以查看对应的错误码值。

房间管理

方法 功能 起始版本
INERtcEngine#setupEngineWithContext: 初始化设置 NERtcEngine V3.5.0
INERtcEngine#setChannelProfile: 设置房间场景 V3.5.0
INERtcEngine#setClientRole: 设置用户角色 V3.5.0
INERtcEngine#joinChannelWithToken:channelName:myUid:completion: 加入房间 V3.6.0
INERtcEngine#switchChannelWithToken:channelName:completion: 直播场景中观众角色快速切换房间 V4.1.0
INERtcEngine#leaveChannel 离开房间 V3.9.0
INERtcEngine#connectionState NERtcEngine 的连接状态 V3.5.0
INERtcEngine#setParameters: 复杂参数设置接口 V3.5.0

房间事件

事件 描述 起始版本
NERtcEngineDelegate#onNERtcEngineDidClientRoleChanged:newRole: 用户角色已切换回调。 V3.9.0
NERtcEngineDelegate#onNERtcEngineRejoinChannel: 重新加入房间回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineDidLeaveChannelWithResult: 离开房间回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName: 远端用户加入当前房间回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason: 远端用户离开当前房间回调。 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineNetworkConnectionTypeChanged: 本地网络类型已改变回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineConnectionStateChangeWithState:reason: 网络连接状态已改变回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineDidDisconnectWithReason: 服务器连接断开回调。 V3.5.0
NERtcEngineDelegate#onNERtcEngineReconnectingStart 重连开始回调。 V3.6.0

音频管理

方法 功能 起始版本
INERtcEngine#setAudioProfile:scenario: 设置音频编码配置 V3.5.0
INERtcEngineEx#adjustRecordingSignalVolume: 调节录音音量 V3.5.0
INERtcEngineEx#adjustPlaybackSignalVolume: 调节播放音量 V3.5.0
INERtcEngineEx#adjustUserPlaybackSignalVolume:forUserID: 调节本地播放的指定远端用户的信号音量。 V4.2.1
INERtcEngine#enableLocalAudio: 开关本地音频采集 V3.5.0
INERtcEngineEx#muteLocalAudio: 开关本地音频发送 V3.5.0
INERtcEngineEx#subscribeRemoteAudio:forUserID: 订阅/取消订阅指定音频流。 V3.5.0
INERtcEngineEx#subscribeAllRemoteAudio: 订阅/取消订阅所有远端音频流 V3.5.0


事件 描述 起始版本
NERtcEngineDelegateEx#onNERtcEngineAudioHasHowling 检测到啸叫回调。 V3.9.0

视频管理

方法 功能 起始版本
INERtcEngine#enableLocalVideo: 开关本地视频 V3.5.0
INERtcEngine#setLocalVideoConfig: 设置视频发送配置 V3.5.0
INERtcEngine#setupLocalVideoCanvas: 设置本地用户视图 V3.5.0
INERtcEngine#setupRemoteVideoCanvas:forUserID: 设置远端用户视图 V3.5.0
INERtcEngineEx#startPreview 开启视频预览 V3.5.0
INERtcEngineEx#stopPreview 停止视频预览 V3.5.0
INERtcEngineEx#muteLocalVideo: 开关本地视频发送 V3.5.0
INERtcEngineEx#subscribeRemoteVideo:forUserID:streamType: 订阅 / 取消订阅指定远端用户的视频流 V3.5.0
INERtcEngineEx#setLocalRenderScaleMode: 设置本地的视频渲染缩放模式 V3.5.0
INERtcEngineEx#setRemoteRenderScaleMode:forUserID: 设置远端的视频渲染缩放模式 V3.5.0
INERtcEngineEx#setVideoRotationMode: 设置本地视频画面的旋转模式。 V4.3.0
INERtcEngineEx#enableSuperResolution: 启用或停止 AI 超分。 V4.4.0

本地媒体事件

方法 功能 起始版本
NERtcEngineDelegateEx#onEngineFirstAudioFrameDecoded: 已解码远端音频首帧的回调 V3.5.0
NERtcEngineDelegateEx#onEngineFirstVideoFrameDecoded:width:height: 已解码远端视频首帧的回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineFirstVideoDataDidReceiveWithUserID: 远端视频首帧回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineFirstAudioDataDidReceiveWithUserID: 远端音频首帧回调 V3.5.0

远端媒体事件

方法 功能 起始版本
NERtcEngineDelegateEx#onNERtcEngineUserVideoProfileDidUpdate:maxProfile: 远端用户更改视频分辨率类型的回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineUser:videoMuted: 远端用户关闭视频发送的回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineUser:audioMuted: 远端用户关闭音频发送的回调 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserAudioDidStart: 远端用户开启音频的回调 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserAudioDidStop: 远端用户关闭音频的回调 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserVideoDidStartWithUserID:videoProfile: 远端用户开启视频的回调 V3.5.0
NERtcEngineDelegate#onNERtcEngineUserVideoDidStop: 远端用户关闭视频的回调 V3.5.0

数据统计事件

方法 功能 起始版本
NERtcEngineMediaStatsObserver#onRtcStats: 当前通话统计回调,每2秒触发一次 V3.5.0
NERtcEngineMediaStatsObserver#onNetworkQuality: 通话中每个用户的网络上下行质量报告回调 V3.5.0
NERtcEngineMediaStatsObserver#onLocalAudioStats: 本地音频流统计信息回调 V3.5.0
NERtcEngineMediaStatsObserver#onLocalVideoStat: 本地视频流统计信息回调 V3.5.0
NERtcEngineMediaStatsObserver#onRemoteAudioStats: 通话中远端音频流的统计信息回调 V3.5.0
NERtcEngineMediaStatsObserver#onRemoteVideoStats: 通话中远端视频流的统计信息回调 V3.5.0
INERtcEngineEx#addEngineMediaStatsObserver: 添加 media 统计信息观测器 V3.5.0
INERtcEngineEx#removeEngineMediaStatsObserver: 删除指定 media 统计信息观测器 V3.5.0
INERtcEngineEx#cleanupEngineMediaStatsObserver 清空 media 统计信息观测器 V3.5.0

屏幕共享

方法 功能 起始版本
INERtcEngineEx#setupLocalSubStreamVideoCanvas: 设置本端的辅流视频回放画布 V3.9.0
INERtcEngineEx#setupRemoteSubStreamVideoCanvas:forUserID: 设置远端的辅流视频回放画布 V3.9.0
INERtcEngineEx#startScreenCapture: 开启屏幕共享 V3.5.0
INERtcEngineEx#stopScreenCapture 停止屏幕共享 V3.5.0
INERtcEngineEx#setLocalRenderSubStreamScaleMode: 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据 V3.9.0
INERtcEngineEx#setRemoteRenderSubStreamVideoScaleMode:forUserID: 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据 V3.9.0
INERtcEngineEx#subscribeRemoteSubStreamVideo:forUserID: 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据 V3.9.0
事件 描述 起始版本
NERtcEngineDelegate#onNERtcEngineUserSubStreamDidStartWithUserID:subStreamProfile: 远端用户开启屏幕共享辅流通道的回调 V3.9.0
NERtcEngineDelegate#onNERtcEngineUserSubStreamDidStop: 远端用户停止屏幕共享辅流通道的回调 V3.9.0

音乐文件播放及混音

方法 功能 起始版本
INERtcEngineEx#startAudioMixingWithOption: 开始播放音乐文件 V3.5.0
INERtcEngineEx#stopAudioMixing 停止播放音乐文件 V3.5.0
INERtcEngineEx#pauseAudioMixing 暂停播放音乐文件 V3.5.0
INERtcEngineEx#resumeAudioMixing 恢复播放音乐文件 V3.5.0
INERtcEngineEx#setAudioMixingPlaybackVolume: 设置音乐文件播放音量 V3.5.0
INERtcEngineEx#setAudioMixingSendVolume: 设置音乐文件的发送音量 V3.5.0
INERtcEngineEx#getAudioMixingPlaybackVolume: 获取音乐文件的播放音量 V3.5.0
INERtcEngineEx#getAudioMixingSendVolume: 获取音乐文件的发送音量 V3.5.0
INERtcEngineEx#getAudioMixingDuration: 获取音乐文件的总长度 V3.5.0
INERtcEngineEx#setAudioMixingPosition: 获取音乐文件的播放进度 V3.5.0
INERtcEngineEx#getAudioMixingCurrentPosition: 设置音乐文件的播放进度 V3.5.0


事件 描述 起始版本
NERtcEngineDelegateEx#onAudioMixingStateChanged:errorCode: 本地用户的音乐文件播放状态改变回调 V3.5.0
NERtcEngineDelegateEx#onAudioMixingTimestampUpdate: 本地用户的音乐文件播放进度回调 V3.5.0

音效文件播放管理

方法 功能 起始版本
INERtcEngineEx#getEffectPlaybackVolumeWithId:volume: 获取音效文件播放音量。 V3.5.0
INERtcEngineEx#setEffectPlaybackVolumeWithId:volume: 设置音效文件播放音量 V3.5.0
INERtcEngineEx#playEffectWitdId:effectOption: 播放指定音效文件 V3.5.0
INERtcEngineEx#stopEffectWitdId: 停止播放指定音效文件 V3.5.0
INERtcEngineEx#stopAllEffects 停止播放所有音效文件 V3.5.0
INERtcEngineEx#pauseEffectWitdId: 暂停音效文件播放 V3.5.0
INERtcEngineEx#pauseAllEffects 暂停所有音效文件播放 V3.5.0
INERtcEngineEx#resumeEffectWitdId: 恢复播放指定音效文件 V3.5.0
INERtcEngineEx#resumeAllEffects 恢复播放所有音效文件 V3.5.0
INERtcEngineEx#setEffectSendVolumeWithId:volume: 调节音效文件发送音量 V3.5.0
INERtcEngineEx#getEffectDurationWithId:duration: 获取音效文件时长。 V4.4.0
INERtcEngineEx#getEffectCurrentPositionWithId:position: 获取音效的播放进度。 V4.4.0

变声与混响

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

旁路推流

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

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


事件 描述 起始版本
NERtcEngineLiveStreamObserver#onNERTCEngineLiveStreamState:taskID:url: 直播推流状态回调 V3.5.0

媒体增强信息

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


事件 描述 起始版本
NERtcEngineVideoSEIObserver#onNERtcEngineRecvSEIMsg:message: 收到远端流的 SEI 内容回调。 V4.0.0

跨房间媒体流转发

方法 功能 起始版本
INERtcEngineEx#startChannelMediaRelay: 开始跨房间媒体流转发 V4.2.1
INERtcEngineEx#updateChannelMediaRelay: 更新媒体流转发的目标房间。 V4.2.1
INERtcEngineEx#stopChannelMediaRelay 停止跨房间媒体流转发。 V4.2.1


事件 描述 起始版本
NERtcEngineDelegateEx#onNERtcEngineChannelMediaRelayStateDidChange:channelName: 跨房间媒体流转发状态发生改变回调。 V4.2.1
NERtcEngineDelegateEx#onNERtcEngineDidReceiveChannelMediaRelayEvent:channelName:error: 媒体流相关转发事件回调。 V4.2.1

音量提示

方法 功能 起始版本
INERtcEngineEx#enableAudioVolumeIndication:interval: 启用说话者音量提示 V3.5.0


事件 描述 起始版本
NERtcEngineDelegateEx#onRemoteAudioVolumeIndication:totalVolume: 提示房间内谁正在说话及说话者音量的回调 V3.5.0
NERtcEngineDelegateEx#onLocalAudioVolumeIndication: 提示房间内本地用户瞬时音量的回调 V3.5.0

耳返

方法 功能 起始版本
INERtcEngineEx#enableEarback:volume: 开启耳返功能 V3.5.0
INERtcEngineEx#setEarbackVolume: 设置耳返音量 V3.5.0

音频播放路由

方法 功能 起始版本
INERtcEngineEx#setLoudspeakerMode: 启用/关闭扬声器播放 V3.5.0
INERtcEngineEx#getLoudspeakerMode: 查询扬声器启用状态 V3.5.0

视频大小流

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

音视频流回退

方法 功能 起始版本
INERtcEngineEx#setLocalPublishFallbackOption: 设置弱网条件下发布的音视频流回退选项。 V4.3.0
INERtcEngineEx#setRemoteSubscribeFallbackOption: 设置弱网条件下订阅的音视频流回退选项。 V4.3.0
INERtcEngineEx#setLocalMediaPriority:preemptive: 设置本地用户的媒体流优先级。 V4.2.0


事件 描述 起始版本
NERtcEngineDelegateEx#onNERtcEngineLocalPublishFallbackToAudioOnly:streamType: 本地发布流已回退为音频流或恢复为音视频流回调。 V4.3.0
NERtcEngineDelegateEx#onNERtcEngineRemoteSubscribeFallbackToAudioOnly:isFallback:streamType: 远端订阅流已回退为音频流或恢复为音视频流回调。 V4.3.0

自定义音频采集与渲染

方法 功能 起始版本
INERtcEngineEx#setExternalAudioSource:sampleRate:channels: 启用外部自定义音频数据输入功能,并设置采集参数。 V3.9.0
INERtcEngineEx#pushExternalAudioFrame: 将外部音频数据帧推送给内部引擎 V3.9.0
INERtcEngineEx#setExternalAudioRender:sampleRate:channels: 开启或关闭外部音频渲染 V3.9.0
INERtcEngineEx#pullExternalAudioFrame:length: 推送外部音频数据 V3.9.0

自定义视频采集

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

原始音频数据

方法 功能 起始版本
INERtcEngineEx#setRecordingAudioFrameParameters: 设置录制的声音格式 V3.5.0
INERtcEngineEx#setPlaybackAudioFrameParameters: 设置播放的声音格式 V3.5.0
INERtcEngineEx#setAudioFrameObserver: 注册语音观测器对象 V3.5.0
INERtcEngineEx#setMixedAudioFrameParameters: 设置采集和播放后的混合后的采样率。需要在加入房间之前调用该接口 V3.5.0
事件 描述 起始版本
NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord: 采集音频数据回调。 V3.5.0
NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 播放音频数据回调。 V3.5.0
NERtcEngineAudioFrameObserver#onNERtcEngineMixedAudioFrame: 音频采集与播放混合后数据帧回调 V3.5.0
NERtcEngineAudioFrameObserver#onNERtcEnginePlaybackAudioFrameBeforeMixingWithUserID:frame:/td> 某一远端用户的原始音频帧回调 V3.5.0

原始视频数据

事件 描述 起始版本
NERtcEngineVideoFrameObserver#onNERtcEngineVideoFrameCaptured:rotation: 采集视频数据回调。 V3.5.0

截图

方法 功能 起始版本
INERtcEngineEx#takeLocalSnapshot:callback: 本地视频画面截图。 V4.2.0
INERtcEngineEx#takeRemoteSnapshot:forUserID:callback: 远端视频画面截图。 V4.2.0
事件 描述 起始版本
INERtcEngine#NERtcTakeSnapshotCallback 截图结果回调。 V4.2.0

水印

方法 功能 起始版本
INERtcEngineEx#setLocalCanvasWatermarkConfigs:withStreamType: 添加本地视频画布水印。 V4.2.0
INERtcEngineEx#setRemoteCanvasWatermarkConfigs:forUserID:withStreamType: 添加远端视频画布水印。 V4.2.0

加密

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

客户端音频录制

方法 功能 起始版本
INERtcEngineEx#startAudioRecording:sampleRate:quality: 开始客户端录音。 V4.2.0
INERtcEngineEx#stopAudioRecording 停止客户端录音。 V4.2.0
事件 描述 起始版本
NERtcEngineDelegateEx#onNERtcEngineAudioRecording:filePath: 音频录制状态回调。 V4.2.0

设备管理

方法 功能 起始版本
INERtcEngine#switchCamera 切换前置/后置摄像头 V3.5.0
INERtcEngineEx#isCameraTorchSupported 检测设备是否支持闪光灯常开 V3.5.0
INERtcEngineEx#setCameraZoomFactor: 设置摄像头缩放比例 V3.5.0
INERtcEngineEx#setCameraFocusPositionX:Y: 设置当前摄像头聚焦点位置 V3.5.0
INERtcEngineEx#setCameraTorchOn: 设置是否打开闪光灯 V3.5.0
INERtcEngineEx#isCameraTorchOn 查询当前摄像头是否打开手电筒 V3.5.0
INERtcEngineEx#maxCameraZoomScale 获取摄像头支持的最大视频缩放比例 V3.5.0
INERtcEngineEx#isCameraZoomSupported 检测设备是否支持摄像头缩放功能 V3.5.0
INERtcEngineEx#isCameraFocusSupported 检测设备是否支持手动对焦功能 V3.5.0
INERtcEngineEx#isCameraExposurePositionSupported 检测设备是否支持手动曝光功能 V3.5.0
INERtcEngineEx#setCameraExposurePosition: 设置手动曝光位置 V3.5.0
INERtcEngineEx#setPlayoutDeviceMute: 设置音频播放设备的状态 V3.5.0
INERtcEngineEx#getPlayoutDeviceMute: 获取当前音频播放设备是否静音 V3.5.0
INERtcEngineEx#setRecordDeviceMute: 设置录音设备的状态 V3.5.0
INERtcEngineEx#getRecordDeviceMute: 获取当前音频采集设备是否静音 V3.5.0
方法 功能 起始版本
NERtcEngineDelegateEx#onNERtcEngineAudioDeviceStateChangeWithDeviceID:deviceType:deviceState: 音频设备状态更改回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineVideoDeviceStateChangeWithDeviceID:deviceType:deviceState: 音频设备状态切换回调 V3.5.0
NERtcEngineDelegateEx#onNERtcEngineHardwareResourceReleased: 硬件资源已经释放的回调 V3.5.0
NERtcEngineDelegateEx#onNERtcCameraFocusChanged: 摄像头对焦区域已改变回调 V3.5.0
NERtcEngineDelegateEx#onNERtcCameraExposureChanged: 摄像头曝光区域已改变回调 V3.5.0

故障排查

方法 功能 起始版本
INERtcEngineEx#uploadSdkInfo 上传SDK日志信息 V3.5.0
INERtcEngineEx#startAudioDump 开始记录音频 dump V3.5.0
INERtcEngineEx#stopAudioDump 结束记录音频 dump V3.5.0
事件 描述 起始版本
NERtcEngineDelegate#onNERtcEngineDidError: 引擎发生了运行时的错误,需要用户干预 V3.5.0
NERtcEngineDelegate#onNERtcEngineDidWarning:msg: 发生警告回调。 V4.3.0