/* * Copyright (c) 2021 NetEase, Inc. All rights reserved. */ #import #import "INERtcEngine.h" #import "INERtcEngineEx.h" #import "NERtcEngineErrorCode.h" #import "NERtcEngineDelegate.h" #import "NERtcEngineEnum.h" /** * @mainpage 简介 * @brief

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

* * - INERtcEngine 接口类包含应用程序调用的主要方法。 * - NERtcEngine 接口类包含获取和销毁 SDK 实例的方法。 * - INERtcEngineEx 接口类包含应用程序调用的扩展方法。 * - INERtcChannel 类在指定房间中实现实时音视频功能。通过创建多个 INERtcChannel 对象,用户可以同时加入多个房间。 * - NERtcChannelDelegate 类监听和报告指定房间的事件和数据。 * - NERtcEngineAudioFrameObserver 接口类用于向应用程序回调音频帧。 * - NERtcEngineDelegate 接口类采用 Delegate 方法向应用程序发送回调通知。 * - NERtcEngineDelegateEx 接口类采用 Delegate 方法向应用程序发送扩展回调通知。 * - NERtcEngineLiveStreamObserver 接口类用于向应用程序发送直播媒体流回调通知。 * - NERtcEngineMediaStatsObserver 接口类用于向应用程序发送媒体状态类回调通知。 * - NERtcEngineVideoFrameObserver 接口类用于向应用程序回调视频帧。 * - NERtcEngineAudioSessionObserver 接口类用于向应用程序发送音频会话回调通知。 * - NERtcBeauty 类接口类包含实现美颜的方法。 * * ## 错误码 * * 在调用 SDK API 的过程中,SDK 可能会返回错误码或状态码,您可以根据错误码或状态码判断当前 SDK 或任务的状态。如果遇到未知的错误码,请联系技术支持排查。 * * 当前 SDK API 的错误码如下,各类错误码页面顶部可以查看对应的错误码值。 * - 通用错误码:{@link NERtcEngineErrorCode.NERtcError} * - 伴音错误码:{@link NERtcAudioMixingErrorCode} * - 客户端录音状态码:{@link NERtcAudioRecordingCode} * - 视频水印状态码:{@link NERtcConstants.NERtcLocalVideoWatermarkState} * - 警告码:{@link NERtcWarning}

房间管理

方法 功能 起始版本
{@link INERtcEngine#setupEngineWithContext:} 初始化设置 NERtcEngine V3.5.0
{@link INERtcEngine#setChannelProfile:} 设置房间场景 V3.5.0
{@link INERtcEngine#setClientRole:} 设置用户角色 V3.5.0
{@link INERtcEngine#joinChannelWithToken:channelName:myUid:completion:} 加入房间 V3.6.0
{@link INERtcEngine#joinChannelWithToken:channelName:myUid:channelOptions:completion:} 加入房间,可以携带鉴权密钥等特定参数。 V4.6.29
{@link INERtcEngine#switchChannelWithToken:channelName:completion:} 直播场景中观众角色快速切换房间 V4.1.0
{@link INERtcEngine#leaveChannel} 离开房间 V3.9.0
{@link INERtcEngine#connectionState} NERtcEngine 的连接状态 V3.5.0
{@link INERtcEngine#setParameters:} 复杂参数设置接口 V3.5.0
{@link INERtcEngineEx#updatePermissionKey:} 更新权限密钥 V4.6.29
## 房间事件
事件 描述 起始版本
{@link NERtcEngineDelegate#onNERtcEngineDidClientRoleChanged:newRole:} 用户角色已切换回调。 V3.9.0
{@link NERtcEngineDelegate#onNERtcEngineRejoinChannel:} 重新加入房间回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineDidLeaveChannelWithResult:} 离开房间回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName:} 远端用户加入当前房间回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName:joinExtraInfo:} 远端用户加入当前房间回调。 V4.6.29
{@link NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason:} 远端用户离开当前房间回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason:leaveExtraInfo:} 远端用户离开当前房间回调。 V4.6.29
{@link NERtcEngineDelegateEx#onNERtcEngineNetworkConnectionTypeChanged:} 本地网络类型已改变回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineConnectionStateChangeWithState:reason:} 房间连接状态已改变回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineDidDisconnectWithReason:} 服务器连接断开回调。 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineReconnectingStart} 重连开始回调。 V3.6.0
{@link NERtcEngineDelegateEx#onNERtcEnginePermissionKeyWillExpire} 权限密钥即将过期事件回调。 V4.6.29
{@link NERtcEngineDelegateEx#onNERtcEngineUpdatePermissionKey:error:timeout:} 更新权限密钥事件回调。 V4.6.29
## 音频管理
方法 功能 起始版本
{@link INERtcEngine#setAudioProfile:scenario:} 设置音频编码配置 V3.5.0
{@link INERtcEngineEx#adjustRecordingSignalVolume:} 调节录音音量 V3.5.0
{@link INERtcEngineEx#adjustPlaybackSignalVolume: } 调节播放音量 V3.5.0
{@link INERtcEngineEx#adjustUserPlaybackSignalVolume:forUserID:} 调节本地播放的指定远端用户的信号音量。 V4.2.1
{@link INERtcEngine#enableLocalAudio:} 开关本地音频采集 V3.5.0
{@link INERtcEngineEx#muteLocalAudio: } 开关本地音频发送 V3.5.0
{@link INERtcEngineEx#subscribeRemoteAudio:forUserID:} 订阅/取消订阅指定音频流。 V3.5.0
{@link INERtcEngineEx#subscribeAllRemoteAudio:} 订阅/取消订阅所有远端音频流 V3.5.0
{@link INERtcEngineEx#setAudioSessionOperationRestriction:} 设置 SDK 对 Audio Session 的控制权限。 V3.5.0
{@link INERtcEngineEx#setRemoteHighPriorityAudioStream:forUserID:streamType:} 设置远端用户音频流的高优先级。 V4.6.0
{@link INERtcEngineEx#enableLocalSubStreamAudio:} 开启或关闭音频辅流 V4.6.10
{@link INERtcEngineEx#subscribeRemoteSubStreamAudio:forUserID:} 订阅远端用户辅流 V4.6.10
{@link INERtcEngineEx#muteLocalSubStreamAudio:} 静音本地音频辅流 V4.6.10
{@link INERtcEngineEx#setAudioSubscribeOnlyBy:} 设置本地用户音频只能被房间内其他指定用户订阅 V4.6.10
{@link INERtcEngine#enableMediaPub:withMediaType:} 发布或停止发布本地音频 V4.6.10

事件 描述 起始版本
{@link NERtcEngineDelegateEx#onNERtcEngineAudioHasHowling} 检测到啸叫回调。 V3.9.0
{@link NERtcEngineAudioFrameObserver#onNERtcEngineSubStreamAudioFrameDidRecord:} 本地音频辅流数据回调。 V4.6.10
{@link NERtcEngineAudioFrameObserver#onNERtcEnginePlaybackSubStreamAudioFrameBeforeMixingWithUserID:frame:channelId:} 获取开启音频辅流的远端用户的辅流数据。 V4.6.10
## 视频管理
方法 功能 起始版本
{@link INERtcEngine#enableLocalVideo:} 开启/关闭本地视频的采集与发送 V3.5.0
{@link INERtcEngine#enableLocalVideo:streamType:} 开启/关闭本地视频的采集与发送 V4.6.20
{@link INERtcEngine#setLocalVideoConfig:} 设置视频编码属性 V3.5.0
{@link INERtcEngine#setLocalVideoConfig:streamType:} 设置视频编码属性 V4.6.20
{@link INERtcEngineEx#setCameraCaptureConfig:} 设置本地摄像头的采集偏好等配置 V4.5.0
{@link INERtcEngineEx#setCameraCaptureConfig:streamType:} 设置本地摄像头的采集偏好等配置 V4.6.20
{@link INERtcEngine#setupLocalVideoCanvas:} 设置本地用户视图 V3.5.0
{@link INERtcEngine#setupRemoteVideoCanvas:forUserID:} 设置远端用户视图 V3.5.0
{@link INERtcEngineEx#startPreview} 开启视频预览 V3.5.0
{@link INERtcEngineEx#startPreview:} 开启视频预览 V4.6.20
{@link INERtcEngineEx#stopPreview} 停止视频预览 V3.5.0
{@link INERtcEngineEx#stopPreview:} 停止视频预览 V4.6.20
{@link INERtcEngineEx#muteLocalVideo:} 取消/恢复发布本地视频 V3.5.0
{@link INERtcEngineEx#muteLocalVideo:streamType:} 取消/恢复发布本地视频 V4.6.20
{@link INERtcEngineEx#subscribeRemoteVideo:forUserID:streamType:} 订阅/取消订阅指定远端用户的视频流 V3.5.0
{@link INERtcEngineEx#setLocalRenderScaleMode:} 设置本地的视频渲染缩放模式 V3.5.0
{@link INERtcEngineEx#setRemoteRenderScaleMode:forUserID:} 设置远端的视频渲染缩放模式 V3.5.0
{@link INERtcEngineEx#setVideoRotationMode:} 设置本地视频画面的旋转模式。 V4.3.0
{@link INERtcEngineEx#enableSuperResolution:} 启用或停止 AI 超分。 V4.4.0
{@link INERtcEngineEx#enableVideoCorrection:} 启用或关闭视频图像畸变矫正。 V4.6.0
{@link INERtcEngineEx#setVideoCorrectionConfig:} 设置视频图像矫正参数。 V4.6.0
{@link INERtcEngineEx#enableVirtualBackground:backData:} 开启虚拟背景。 V4.6.10

本地媒体事件

方法 功能 起始版本
{@link NERtcEngineDelegateEx#onEngineFirstAudioFrameDecoded:} 已解码远端音频首帧的回调 V3.5.0
{@link NERtcEngineDelegateEx#onEngineFirstVideoFrameDecoded:width:height:} 已接收到远端视频首帧并完成解码的回调 V3.5.0
{@link NERtcEngineDelegateEx#onEngineFirstVideoFrameDecoded:width:height:streamType:} 已接收到远端视频首帧并完成解码的回调 V4.6.20
{@link NERtcEngineDelegateEx#onNERtcEngineFirstVideoDataDidReceiveWithUserID:} 已显示远端视频首帧的回调 V3.5.0
{@link NERtcEngineDelegateEx#onNERtcEngineFirstVideoDataDidReceiveWithUserID:streamType:} 已显示远端视频首帧的回调 V4.6.20
{@link NERtcEngineDelegateEx#onNERtcEngineFirstAudioDataDidReceiveWithUserID:} 已接收远端音频首帧的回调 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineMediaRightChangeWithAudio:video:} 服务端禁言音视频权限变化回调 V4.6.0
{@link NERtcEngineDelegateEx#onNERtcEngineVirtualBackgroundSourceEnabled:reason:} 通知虚拟背景是否成功开启的回调 V4.6.10

远端媒体事件

方法 功能 起始版本
{@link NERtcEngineDelegateEx#onNERtcEngineUserVideoProfileDidUpdate:maxProfile:} 远端用户更改视频分辨率类型的回调 V3.5.0
{@link NERtcEngineDelegateEx#onNERtcEngineUser:videoMuted:} 远端用户暂停或恢复发送视频主流的回调 V3.5.0
{@link NERtcEngineDelegateEx#onNERtcEngineUser:videoMuted:streamType:} 远端用户暂停或恢复发送视频主流或辅流的回调 V4.6.20
{@link NERtcEngineDelegateEx#onNERtcEngineUser:audioMuted:} 远端用户暂停或恢复音频主流发送的回调 V3.5.0
{@link NERtcChannelDelegate#onNERtcChannelUser:subStreamAudioMuted:} 远端用户暂停或恢复音频辅流发送的回调 V4.6.10
{@link NERtcEngineDelegate#onNERtcEngineUserAudioDidStart:} 远端用户开启音频主流的回调 V3.5.0
{@link NERtcChannelDelegate#onNERtcChannelUserSubStreamAudioDidStart:} 远端用户开启音频辅流的回调 V4.6.10
{@link NERtcEngineDelegate#onNERtcEngineUserAudioDidStop:} 远端用户关闭音频主流的回调 V3.5.0
{@link NERtcChannelDelegate#onNERtcChannelUserSubStreamAudioDidStop:} 远端用户关闭音频辅流的回调 V4.6.10
{@link NERtcEngineDelegate#onNERtcEngineUserVideoDidStartWithUserID:videoProfile:} 远端用户开启视频的回调 V3.5.0
{@link NERtcEngineDelegate#onNERtcEngineUserVideoDidStop:} 远端用户关闭视频的回调 V3.5.0

数据统计事件

方法 功能 起始版本
{@link NERtcEngineMediaStatsObserver#onRtcStats:} 当前通话统计回调,每2秒触发一次 V3.5.0
{@link NERtcEngineMediaStatsObserver#onNetworkQuality:} 通话中每个用户的网络上下行质量报告回调 V3.5.0
{@link NERtcEngineMediaStatsObserver#onLocalAudioStat:} 本地音频流统计信息回调 V3.5.0
{@link NERtcEngineMediaStatsObserver#onLocalVideoStat:} 本地视频流统计信息回调 V3.5.0
{@link NERtcEngineMediaStatsObserver#onRemoteAudioStats:} 通话中远端音频流的统计信息回调 V3.5.0
{@link NERtcEngineMediaStatsObserver#onRemoteVideoStats:} 通话中远端视频流的统计信息回调 V3.5.0
{@link INERtcEngineEx#addEngineMediaStatsObserver:} 添加 media 统计信息观测器 V3.5.0
{@link INERtcEngineEx#removeEngineMediaStatsObserver: } 删除指定 media 统计信息观测器 V3.5.0
{@link INERtcEngineEx#cleanupEngineMediaStatsObserver} 清空 media 统计信息观测器 V3.5.0
## 多房间管理
方法 功能 起始版本
{@link INERtcEngineEx#createChannel:} 创建并获取一个 NERtcChannel 对象。通过创建多个对象,用户可以同时加入多个房间。 V4.5.0
INERtcChannel 该类提供在指定房间内实现实时音视频功能的方法。 V4.5.0
NERtcChannelDelegate 该类提供监听指定房间事件和数据的回调。 V4.5.0

屏幕共享

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

美颜

方法 功能 起始版本
{@link NERtcBeauty#startBeauty} 开启美颜功能模块 V4.6.10
{@link NERtcBeauty#stopBeauty} 结束美颜功能模块 V4.6.10
{@link NERtcBeauty#isOpenBeauty} 暂停或恢复美颜效果 V4.6.10
{@link NERtcBeauty#setBeautyEffectWithValue:atType:} 设置美颜效果 V4.6.10
{@link NERtcBeauty#addTempleteWithPath:andName:} 导入美颜资源或模型 V4.6.10
{@link NERtcBeauty#addBeautyFilterWithPath:andName:} 添加滤镜效果 V4.6.10
{@link NERtcBeauty#removeBeautyFilter} 移除滤镜 V4.6.10
## 通话前网络测试
方法 功能 起始版本
{@link INERtcEngineEx#startLastmileProbeTest:} 开始通话前网络质量探测。 V4.5.0
{@link INERtcEngineEx#stopLastmileProbeTest} 停止通话前网络质量探测。 V4.5.0
事件 描述 起始版本
{@link NERtcEngineDelegateEx#onNERtcEngineLastmileQuality:} 报告本地用户的网络质量。 V4.5.0
{@link NERtcEngineDelegateEx#onNERtcEngineLastmileProbeTestResult:} 报告通话前网络上下行 last mile 质量。 V4.5.0

音乐文件播放及混音(伴音)

方法 功能 起始版本
{@link INERtcEngineEx#startAudioMixingWithOption:} 开始播放伴音 V3.5.0
{@link INERtcEngineEx#stopAudioMixing} 停止播放伴音 V3.5.0
{@link INERtcEngineEx#pauseAudioMixing} 暂停播放伴音 V3.5.0
{@link INERtcEngineEx#resumeAudioMixing} 恢复播放伴音 V3.5.0
{@link INERtcEngineEx#setAudioMixingPlaybackVolume:} 设置伴音的播放音量 V3.5.0
{@link INERtcEngineEx#setAudioMixingSendVolume:} 设置伴音的发送音量 V3.5.0
{@link INERtcEngineEx#setAudioMixingPitch:} 设置伴音的音调 V4.6.29
{@link INERtcEngineEx#getAudioMixingPlaybackVolume:} 获取伴音的播放音量 V3.5.0
{@link INERtcEngineEx#getAudioMixingSendVolume:} 获取伴音的发送音量 V3.5.0
{@link INERtcEngineEx#getAudioMixingPitch:} 获取伴音的音调 V4.6.29
{@link INERtcEngineEx#getAudioMixingDuration:} 获取伴音的总长度 V3.5.0
{@link INERtcEngineEx#setAudioMixingPosition:} 设置伴音的播放进度 V3.5.0
{@link INERtcEngineEx#getAudioMixingCurrentPosition:} 获取伴音的播放进度 V3.5.0

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

音效文件播放管理

方法 功能 起始版本
{@link INERtcEngineEx#getEffectPlaybackVolumeWithId:volume:} 获取音效文件播放音量。 V3.5.0
{@link INERtcEngineEx#setEffectPlaybackVolumeWithId:volume:} 设置音效文件播放音量 V3.5.0
{@link INERtcEngineEx#playEffectWitdId:effectOption:} 播放指定音效文件 V3.5.0
{@link INERtcEngineEx#stopEffectWitdId:} 停止播放指定音效文件 V3.5.0
{@link INERtcEngineEx#stopAllEffects} 停止播放所有音效文件 V3.5.0
{@link INERtcEngineEx#pauseEffectWitdId:} 暂停音效文件播放 V3.5.0
{@link INERtcEngineEx#pauseAllEffects} 暂停所有音效文件播放 V3.5.0
{@link INERtcEngineEx#resumeEffectWitdId:} 恢复播放指定音效文件 V3.5.0
{@link INERtcEngineEx#resumeAllEffects} 恢复播放所有音效文件 V3.5.0
{@link INERtcEngineEx#setEffectSendVolumeWithId:volume:} 调节音效文件发送音量 V3.5.0
{@link INERtcEngineEx#getEffectDurationWithId:duration:} 获取音效文件时长。 V4.4.0
{@link INERtcEngineEx#getEffectCurrentPositionWithId:position:} 获取音效的播放进度。 V4.4.0
{@link INERtcEngineEx#setEffectPitchWithId:pitch:} 设置音效文件音调。 V4.6.29
{@link INERtcEngineEx#getEffectPitchWithId:pitch:} 获取音效文件音调。 V4.6.29
{@link INERtcEngineEx#setEffectPositionWithId:position:} 设置音效文件播放进度。 V4.6.29
事件 描述 起始版本
{@link NERtcEngineDelegateEx#onAudioEffectTimestampUpdateWithId:timeStampMS:} 指定音效文件播放进度回调 V4.6.29

变声与混响

方法 功能 起始版本
{@link INERtcEngineEx#setAudioEffectPreset:} 设置 SDK 预设的人声的变声音效 V4.1.0
{@link INERtcEngineEx#setVoiceBeautifierPreset:} 设置 SDK 预设的美声效果 V4.0.0
{@link INERtcEngineEx#setLocalVoiceEqualizationOfBandFrequency:withGain:} 设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率 V4.0.0
{@link INERtcEngineEx#setLocalVoicePitch:} 设置本地语音音调 V4.1.0
{@link INERtcEngineEx#setLocalVoiceReverbParam:} V开启本地语音混响效果 4.6.10

旁路推流

注意:该组方法仅适用于互动直播 2.0。
方法 功能 起始版本
{@link INERtcEngineEx#addLiveStreamTask:compeltion:} 添加房间推流任务 V3.5.0
{@link INERtcEngineEx#updateLiveStreamTask:compeltion:} 更新修改房间推流任务 V3.5.0
{@link INERtcEngineEx#removeLiveStreamTask:compeltion:} 删除房间推流任务 V3.5.0

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

媒体增强信息

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

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

跨房间媒体流转发

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

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

音量提示

方法 功能 起始版本
{@link INERtcEngineEx#enableAudioVolumeIndication:interval:} 启用说话者音量提示 V3.5.0
{@link INERtcEngineEx#enableAudioVolumeIndication:interval:vad:} 启用说话者音量及本地是否有人声提示 V4.6.10

事件 描述 起始版本
{@link NERtcEngineDelegateEx#onRemoteAudioVolumeIndication:totalVolume:} 提示房间内谁正在说话及说话者音量的回调 V3.5.0
{@link NERtcEngineDelegateEx#onLocalAudioVolumeIndication:} 提示房间内本地用户瞬时音量的回调 V3.5.0
{@link NERtcEngineDelegateEx#onLocalAudioVolumeIndication:withVad:} 提示房间内本地用户瞬时音量及是否存在人声的回调 V4.6.10

耳返

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

音频播放路由

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

事件 描述 起始版本
{@link NERtcEngineAudioSessionObserver#onNERtcEngineAudioDeviceRoutingDidChange:} 音频路由变化回调。 V3.6.0

视频大小流

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

音视频流回退

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

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

自定义音频采集与渲染

方法 功能 起始版本
{@link INERtcEngineEx#setExternalAudioSource:sampleRate:channels:} 启用外部自定义音频数据主流输入功能,并设置采集参数。 V3.9.0
{@link INERtcEngineEx#setExternalSubStreamAudioSource:sampleRate:channels:} 启用外部自定义音频数据辅流输入功能,并设置采集参数。 V4.6.10
{@link INERtcEngineEx#pushExternalAudioFrame:} 将外部音频数据帧推送给内部引擎 V3.9.0
{@link INERtcEngineEx#pushExternalSubStreamAudioFrame:} 将外部音频辅流数据帧推送给内部引擎 V4.6.10
{@link INERtcEngineEx#setExternalAudioRender:sampleRate:channels:} 开启或关闭外部音频渲染 V3.9.0
{@link INERtcEngineEx#pullExternalAudioFrame:length:} 推送外部音频数据 V3.9.0
{@link INERtcEngineEx#setStreamAlignmentProperty:} 对齐本地系统时间与服务端时间。 V4.6.10
{@link INERtcEngineEx#getNtpTimeOffset} 获取本地系统时间与服务端时间的差值。 V4.6.10

自定义视频采集

方法 功能 起始版本
{@link INERtcEngineEx#setExternalVideoSource:isScreen:} 开启/关闭外部视频源数据输入 V3.5.0
{@link INERtcEngineEx#setExternalVideoSource:streamType:} 开启/关闭外部视频源数据输入 V4.6.20
{@link INERtcEngineEx#pushExternalVideoFrame:} 推送外部视频帧 V3.5.0

音视频裸流传输

方法 功能 起始版本
{@link INERtcEngineEx#setPreDecodeObserver:} 注册解码前媒体数据观测器。 V4.6.29
{@link INERtcEngineEx#pushExternalAudioEncodedFrame:} 推送外部音频主流编码帧。 V4.6.29
{@link INERtcEngineEx#pushExternalSubStreamAudioEncodedFrame:} 推送外部音频辅流编码帧。 V4.6.29
{@link INERtcEngineEx#pushExternalVideoEncodedFrame:} 推送外部视频编码帧。 V4.6.29
{@link INERtcEngineEx#setVideoEncoderQosObserver:} 注册视频编码 QoS 信息监听器。 V4.6.29
事件 描述 起始版本
{@link NERtcEnginePreDecodeObserver#onNERtcEnginePreDecoderFrame:} 解码前媒体数据回调。 V4.6.29
{@link NERtcEngineVideoEncoderQosObserver#onNERtcEngineRequestSendKeyFrame:} 帧请求事件回调。 V4.6.29
{@link NERtcEngineVideoEncoderQosObserver#onNERtcEngineVideoCodecUpdated:videoStreamType:} 视频编码器类型信息回调。 V4.6.29
{@link NERtcEngineVideoEncoderQosObserver#onNERtcEngineBitrateUpdated:videoStreamType:} 码率信息回调。 V4.6.29

原始音频数据

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

原始视频数据

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

截图

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

水印

方法 功能 起始版本
{@link INERtcEngineEx#setLocalVideoWatermarkConfigs:withStreamType:} 添加本地视频水印。 V4.6.10

事件 描述 起始版本
{@link NERtcEngineDelegateEx#onNERtcEngineLocalVideoWatermarkStateWithStreamType:state:} 水印结果回调。 V4.6.10

加密

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

客户端音频录制

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

云代理

方法 功能 起始版本
{@link INERtcEngineEx#setCloudProxy:} 开启并设置云代理服务。 V4.6.0

设备管理

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

空间音效(3D 音效)和范围语音

方法 功能 起始版本
{@link INERtcEngineEx#initSpatializer} 初始化空间音效 V5.5.10
{@link INERtcEngineEx#enableSpatializer:applyToTeam:} 开启/关闭空间音效 V5.4.0
{@link INERtcEngineEx#setAudioRecvRange:conversationalDistance:rollOff:} 设置空间音效的距离衰减属性和语音范围 V5.5.10
{@link INERtcEngineEx#setSpatializerRoomProperty:} 设置房间混响属性 V5.4.0
{@link INERtcEngineEx#enableSpatializerRoomEffects:} 开启或关闭空间音效的房间混响效果 V5.4.0
{@link INERtcEngineEx#updateSelfPosition:} 设置说话者和接收者的位置信息 V5.4.0
{@link INERtcEngineEx#setSpatializerRenderMode:} 设置渲染模式 V5.4.0
{@link INERtcEngineEx#setRangeAudioTeamID:} 设置范围语音的队伍号 V5.5.10
{@link INERtcEngineEx#setRangeAudioMode:} 设置范围语音的模式 V5.5.10
{@link INERtcEngineEx#setSubscribeAudioAllowlist:} 设置只订阅指定用户的音频流 V5.5.10
{@link INERtcEngineEx#setSubscribeAudioBlocklist:uidArray:} 设置不订阅指定用户的音频流 V5.5.10

故障排查

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