NERtc iOS SDK  V4.6.0
构造函数 | 所有成员列表
<INERtcEngineEx>协议 参考


NERtcEngine 扩展接口 更多...

#import <INERtcEngineEx.h>

类 <INERtcEngineEx> 继承关系图:
<INERtcEngine> NERtcEngine

构造函数

(int) - enableDualStreamMode:
 设置是否开启视频大小流模式。
该方法设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。 更多...
 
(int) - setLocalMediaPriority:preemptive:
 设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证其他用户收到的、高优先级用户的媒体流的质量。 更多...
 
(int) - setLocalPublishFallbackOption:
 设置弱网条件下发布的音视频流回退选项。
在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后: 更多...
 
(int) - setRemoteSubscribeFallbackOption:
 设置弱网条件下订阅的音视频流回退选项。
弱网环境下,订阅的音视频质量会下降。通过该接口设置订阅音视频流的回退选项后: 更多...
 
(int) - muteLocalAudio:
 开关本地音频发送。
该方法用于允许或禁止向网络发送本地音频流。 更多...
 
(int) - subscribeRemoteAudio:forUserID:
 取消或恢复订阅指定远端用户音频流。
加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。 更多...
 
(int) - subscribeAllRemoteAudio:
 取消或恢复订阅所有远端用户音频流。 更多...
 
(int) - subscribeRemoteVideo:forUserID:streamType:
 订阅或取消订阅指定远端用户的视频流。 更多...
 
(int) - startPreview
 开启视频预览。 更多...
 
(int) - stopPreview
 停止视频预览。 更多...
 
(int) - setLocalRenderScaleMode:
 设置本端的视频显示模式。 更多...
 
(int) - setRemoteRenderScaleMode:forUserID:
 设置远端的视频显示模式。 更多...
 
(int) - setVideoRotationMode:
 设置本地视频画面的旋转模式。
该接口用于设置本地视频画面在本地和远端设备上的旋转模式,可以指定本地画面和系统设备的横屏/竖屏模式一致、或者和 App UI的横屏/竖屏模式一致。 更多...
 
(int) - muteLocalVideo:
 取消或恢复发布本地视频流。 更多...
 
(int) - setLoudspeakerMode:
 启用或关闭扬声器播放。
该方法设置是否将语音路由到扬声器,即设备外放。 更多...
 
(int) - getLoudspeakerMode:
 检查扬声器状态启用状态。 更多...
 
(int) - startAudioDump
 开始记录音频 dump。
音频 dump 可用于分析音频问题。 更多...
 
(int) - startAudioDumpWithType:
 开始进行音频 dump。 更多...
 
(int) - stopAudioDump
 结束记录音频 dump。 更多...
 
(int) - setRemoteHighPriorityAudioStream:forUserID:streamType:
 设置远端用户音频流的高优先级。 支持在音频自动订阅的情况下,设置某一个远端用户的音频为最高优先级,可以优先听到该用户的音频。 更多...
 
(int) - setExternalVideoSource:isScreen:
 开启或关闭外部视频源数据输入。 更多...
 
(int) - pushExternalVideoFrame:
 推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。 更多...
 
(int) - setupLocalSubStreamVideoCanvas:
 设置本地辅流视频画布。
该方法设置本地辅流视频显示信息。App 通过调用此接口绑定本地辅流的显示视窗(view)。 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。 更多...
 
(int) - startScreenCapture:
 开启屏幕共享,屏幕共享内容以辅流形式发送。
只能在加入房间后调用。
如果您在加入房间后调用该方法开启辅流,调用成功后,远端触发 onNERtcEngineUserSubStreamDidStartWithUserID 回调。 更多...
 
(int) - stopScreenCapture
 关闭辅流形式的屏幕共享。
如果您在加入房间后调用该方法关闭辅流,调用成功后,远端触发 onNERtcEngineUserSubStreamDidStop 回调。 更多...
 
(int) - setLocalRenderSubStreamScaleMode:
 设置本端的屏幕共享辅流视频显示模式。
在本端开启辅流形式的屏幕共享时使用。App 可以多次调用此方法更改显示模式。 更多...
 
(int) - setupRemoteSubStreamVideoCanvas:forUserID:
 设置远端的辅流视频画布。
该方法绑定远端用户和辅流显示视图,即指定某个 userID 使用对应的画布显示。 更多...
 
(int) - subscribeRemoteSubStreamVideo:forUserID:
 订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据。 更多...
 
(int) - setRemoteRenderSubStreamVideoScaleMode:forUserID:
 设置远端的屏幕共享辅流视频显示模式。 更多...
 
(int) - setAudioSessionOperationRestriction:
 设置 SDK 对 Audio Session 的控制权限。
该方法仅适用于 iOS 平台。
该方法限制 SDK 对 Audio Session 的操作权限。在默认情况下,SDK 和 App 对 Audio Session 都有控制权,但某些场景下,App 会希望限制 SDK 对 Audio Session 的控制权限,而使用其他应用或第三方组件对 Audio Session 进行操控。调用该方法可以实现该功能。
该接口只能在入会之前调用。 更多...
 
(int) - setPlayoutDeviceMute:
 设置是否静音音频播放设备。 更多...
 
(int) - getPlayoutDeviceMute:
 获取音频播放设备的静音状态。 更多...
 
(int) - setRecordDeviceMute:
 设置是否静音音频采集设备。 更多...
 
(int) - getRecordDeviceMute:
 查询当前音频采集设备是否静音。 更多...
 
(BOOL) - isCameraZoomSupported
 检测设备当前使用的摄像头是否支持缩放功能。
该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。 更多...
 
(BOOL) - isCameraTorchSupported
 检测设备是否支持闪光灯常亮。 更多...
 
(BOOL) - isCameraFocusSupported
 检测设备是否支持手动对焦功能。 更多...
 
(BOOL) - isCameraExposurePositionSupported
 检测设备是否支持手动曝光功能。 更多...
 
(int) - setCameraExposurePosition:
 设置当前摄像头手动曝光位置。
成功调用该方法后,本地会触发 onCameraExposureChanged 回调。 更多...
 
(int) - setCameraTorchOn:
 设置是否打开闪光灯。 更多...
 
(BOOL) - isCameraTorchOn
 查询设备是否开启了闪光灯。 更多...
 
(int) - setCameraZoomFactor:
 设置当前摄像头缩放比例。 更多...
 
(float) - maxCameraZoomScale
 获取摄像头支持最大缩放比例。 更多...
 
(int) - setCameraFocusPositionX:Y:
 设置手动对焦位置。
成功调用该方法后,本地会触发 onNERtcCameraFocusChanged 回调。 更多...
 
(int) - setCameraCaptureConfig:
 设置本地摄像头的采集偏好等配置。
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 根据用户的 setLocalVideoConfig 配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。 更多...
 
(int) - startAudioMixingWithOption:
 开始播放音乐文件。
该方法指定本地或在线音频文件来和录音设备采集的音频流进行混音。 更多...
 
(int) - stopAudioMixing
 停止播放音乐文件及混音。
该方法停止播放伴奏。请在房间内调用该方法。 更多...
 
(int) - pauseAudioMixing
 暂停播放音乐文件及混音。
该方法暂停播放伴奏。请在房间内调用该方法。 更多...
 
(int) - resumeAudioMixing
 该方法恢复混音,继续播放伴奏。请在房间内调用该方法。 更多...
 
(int) - setAudioMixingSendVolume:
 设置伴奏的发送音量。 更多...
 
(int) - getAudioMixingSendVolume:
 获取伴奏发送音量。
该方法获取混音里伴奏的发送音量大小。请在房间内调用该方法。 更多...
 
(int) - setAudioMixingPlaybackVolume:
 调节伴奏播放音量。
该方法调节混音里伴奏的播放音量大小。请在房间内调用该方法。 更多...
 
(int) - getAudioMixingPlaybackVolume:
 获取伴奏播放音量。
该方法获取混音里伴奏的播放音量大小。请在房间内调用该方法。 更多...
 
(int) - getAudioMixingDuration:
 获取伴奏时长。
该方法获取伴奏时长,单位为毫秒。请在房间内调用该方法。 更多...
 
(int) - getAudioMixingCurrentPosition:
 获取音乐文件的播放进度。
该方法获取当前伴奏播放进度,单位为毫秒。请在房间内调用该方法。 更多...
 
(int) - setAudioMixingPosition:
 设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。 更多...
 
(int) - playEffectWitdId:effectOption:
 播放指定音效文件。
该方法播放指定的本地或在线音效文件。 更多...
 
(int) - stopEffectWitdId:
 停止播放指定音效文件。 更多...
 
(int) - stopAllEffects
 停止播放所有音效文件。 更多...
 
(int) - pauseEffectWitdId:
 暂停播放指定音效文件。
请在加入房间后调用该方法。 更多...
 
(int) - resumeEffectWitdId:
 恢复播放指定音效文件。
请在加入房间后调用该方法。 更多...
 
(int) - pauseAllEffects
 暂停播放所有音效文件。
请在加入房间后调用该方法。 更多...
 
(int) - resumeAllEffects
 恢复播放所有音效文件。
请在加入房间后调用该方法。 更多...
 
(int) - setEffectSendVolumeWithId:volume:
 设置音效文件发送音量。
请在加入房间后调用该方法。 更多...
 
(int) - getEffectSendVolumeWithId:volume:
 获取指定音效文件发送音量。
请在加入房间后调用该方法。 更多...
 
(int) - setEffectPlaybackVolumeWithId:volume:
 获取音效文件播放音量。
请在加入房间后调用该方法。 更多...
 
(int) - getEffectPlaybackVolumeWithId:volume:
 获取音效的回放音量 更多...
 
(int) - getEffectDurationWithId:duration:
 获取音效文件时长。 更多...
 
(int) - getEffectCurrentPositionWithId:position:
 获取音效的播放进度。 更多...
 
(int) - enableEarback:volume:
 开启耳返功能。 更多...
 
(int) - setEarbackVolume:
 设置耳返音量。 更多...
 
(int) - startAudioRecording:sampleRate:quality:
 开始客户端录音。
调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。
指定的录音音质不同,录音文件会保存为不同格式: 更多...
 
(int) - startAudioRecordingWithConfig:
 开始客户端录音。 调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。 指定的录音音质不同,录音文件会保存为不同格式: 更多...
 
(int) - stopAudioRecording
 停止客户端录音。
本端离开房间时自动停止录音,您也可以在通话中随时调用 stopAudioRecording 手动停止录音。 更多...
 
(int) - setExternalAudioSource:sampleRate:channels:
 开启或关闭外部音频源数据输入。
当该方法调用成功后,音频输入设备选择和异常重启会失效。调用成功后可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。 更多...
 
(int) - pushExternalAudioFrame:
 推送外部音频帧。
将外部音频数据帧推送给内部引擎。 通过 setExternalAudioSource 启用外部音频数据输入功能成功后,可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。 更多...
 
(int) - setExternalAudioRender:sampleRate:channels:
 设置外部音频渲染。
该方法适用于需要自行渲染音频的场景。默认为关闭状态。当该方法调用成功后,音频播放设备选择和异常重启失效。
调用成功后可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。 更多...
 
(int) - pullExternalAudioFrame:length:
 拉取外部音频数据。
该方法将从内部引擎拉取音频数据。 通过 setExternalAudioRender 启用外部音频数据渲染功能成功后,可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。 更多...
 
(int) - addEngineMediaStatsObserver:
 注册媒体统计信息观测器。 更多...
 
(int) - removeEngineMediaStatsObserver:
 移除指定媒体统计信息观测器。 更多...
 
(int) - cleanupEngineMediaStatsObserver
 清除全部媒体统计信息观测器。 更多...
 
(int) - addLiveStreamTask:compeltion:
 添加房间推流任务。
成功调用该方法后,当前用户可以收到该直播流的状态通知。 更多...
 
(int) - updateLiveStreamTask:compeltion:
 更新房间推流任务。 更多...
 
(int) - removeLiveStreamTask:compeltion:
 删除房间推流任务。 更多...
 
(int) - setRecordingAudioFrameParameters:
 设置采集的音频格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord: 回调的录制声音格式。 更多...
 
(int) - setPlaybackAudioFrameParameters:
 设置播放的声音格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 回调的播放声音格式。 更多...
 
(int) - setMixedAudioFrameParameters:
 设置录制和播放声音混音后的数据格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineMixedAudioFrame: 回调的声音格式。 更多...
 
(int) - setAudioFrameObserver:
 注册语音观测器对象。
该方法用于设置音频采集/播放 PCM 回调,可用于声音处理等操作。当需要引擎返回 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord:NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 回调时,需要使用该方法注册回调。 更多...
 
(int) - enableAudioVolumeIndication:interval:
 启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息,即当前谁在说话以及说话者的音量。
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 onRemoteAudioVolumeIndication 回调。 更多...
 
(int) - adjustRecordingSignalVolume:
 调节采集信号音量。 更多...
 
(int) - adjustPlaybackSignalVolume:
 调节本地播放的所有远端用户信号音量。 更多...
 
(int) - adjustUserPlaybackSignalVolume:forUserID:
 调节本地播放的指定远端用户的信号音量。
加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。 更多...
 
(int) - setLocalVoicePitch:
 设置本地语音音调。
该方法改变本地说话人声音的音调。 更多...
 
(int) - setLocalVoiceEqualizationOfBandFrequency:withGain:
 设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。 更多...
 
(int) - setVoiceBeautifierPreset:
 设置 SDK 预设的美声效果。
调用该方法可以为本地发流用户设置 SDK 预设的人声美声效果。 更多...
 
(int) - setAudioEffectPreset:
 设置 SDK 预设的人声的变声音效。
设置变声音效可以将人声原音调整为多种特殊效果,改变声音特性。 更多...
 
(int) - setLocalCanvasWatermarkConfigs:withStreamType:
 添加本地视频画布水印。 更多...
 
(int) - setRemoteCanvasWatermarkConfigs:forUserID:withStreamType:
 添加远端视频画布水印。 更多...
 
(int) - takeLocalSnapshot:callback:
 本地视频画面截图。
调用 takeLocalSnapshot 截取本地主流或本地辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的回调返回截图画面的数据。 更多...
 
(int) - takeRemoteSnapshot:forUserID:callback:
 远端视频画面截图。
调用 takeRemoteSnapshot 截取指定 uid 远端主流和远端辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的回调返回截图画面的数据。 更多...
 
(int) - uploadSdkInfo
 上传 SDK 信息。
上传的信息包括 log 和 Audio dump 等文件。 更多...
 
(int) - sendSEIMsg:streamChannelType:
 指定主流或辅流通道发送媒体增强补充信息(SEI)。
在本端推流传输音视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。 更多...
 
(int) - sendSEIMsg:
 通过主流通道发送媒体增强补充信息(SEI)。
在本端推流传输音视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。 更多...
 
(int) - startChannelMediaRelay:
 开始跨房间媒体流转发。 更多...
 
(int) - updateChannelMediaRelay:
 更新媒体流转发的目标房间。
成功开始跨房间转发媒体流后,如果你希望将流转发到多个目标房间,或退出当前的转发房间,可以调用该方法。 更多...
 
(int) - stopChannelMediaRelay
 停止跨房间媒体流转发。
主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay 方法,此时主播会退出所有目标房间。 更多...
 
(int) - enableSuperResolution:
 启用或停止 AI 超分。 更多...
 
(int) - enableEncryption:config:
 开启或关闭媒体流加密。 更多...
 
(int) - startLastmileProbeTest:
 开始通话前网络质量探测。
启用该方法后,SDK 会通过回调方式反馈上下行网络的质量状态与质量探测报告,包括带宽、丢包率、网络抖动和往返时延等数据。一般用于通话前的网络质量探测场景,用户加入房间之前可以通过该方法预估音视频通话中本地用户的主观体验和客观网络状态。
相关回调如下: 更多...
 
(int) - stopLastmileProbeTest
 停止通话前网络质量探测。 更多...
 
(nullable NERtcChannel *) - createChannel:
 创建一个 IRtcChannel 对象 更多...
 
(int) - enableVideoCorrection:
 是否启用视频图像畸变矫正。 更多...
 
(int) - setVideoCorrectionConfig:
 设置视频图像矫正参数。 更多...
 
(int) - setCloudProxy:
 开启并设置云代理服务。
在内网环境下,如果用户防火墙开启了网络限制,请参考《使用云代理》将指定 IP 地址和端口号加入防火墙白名单,然后调用此方法开启云代理,并将 proxyType 参数设置为 NERtcTransportTypeUDPProxy(1),即指定使用 UDP 协议的云代理。 更多...
 
- 构造函数 继承自 <INERtcEngine>
(NERtcConnectionStateType- connectionState
 获取当前房间连接状态。 更多...
 
(int) - setupEngineWithContext:
 创建 NERtcEngine 并初始化 NERTC SDK 服务。 更多...
 
(int) - joinChannelWithToken:channelName:myUid:completion:
 加入音视频房间。
加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。 更多...
 
(int) - leaveChannel
 离开房间,即挂断或退出通话。
结束通话时,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。
成功调用该方法离开房间后,本地会触发 onNERtcEngineDidLeaveChannelWithResult 回调,远端会触发 onNERtcEngineUserDidLeaveWithUserID 回调。 更多...
 
(int) - switchChannelWithToken:channelName:completion:
 快速切换音视频房间。
房间场景为直播场景时,房间中角色为观众的成员可以调用该方法从当前房间快速切换至另一个房间。
成功调用该方切换房间后,本端会收到离开房间的回调 onNERtcEngineDidLeaveChannelWithResult;远端用户会收到 onNERtcEngineUserDidLeaveWithUserID 和 onNERtcEngineUserDidJoinWithUserID 的回调。 更多...
 
(int) - enableLocalAudio:
 开启/关闭本地音频采集和发送。
当 App 加入房间时,语音功能默认为开启状态。
该方法不影响接收或播放远端音频流,enableLocalAudio(NO) 适用于只下行不上行音频流的场景。
成功调用该方法后,房间内其他用户触发 onNERtcEngineUserAudioDidStart 或 onNERtcEngineUserAudioDidStop 回调。 更多...
 
(int) - enableLocalVideo:
 是否开启本地视频采集。 更多...
 
(int) - setChannelProfile:
 设置房间场景。
房间场景可设置为通话或直播场景,不同的场景中 QoS 策略不同。 更多...
 
(int) - setLocalVideoConfig:
 设置视频编码属性。 更多...
 
(int) - setAudioProfile:scenario:
 设置音频编码属性。 更多...
 
(int) - setupLocalVideoCanvas:
 设置本地视图。
该方法设置本地视频显示信息。只影响本地用户看到的视频画面,不影响远端。 App 通过调用此接口绑定本地视频流的显示视窗(view)。 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。 更多...
 
(int) - setupRemoteVideoCanvas:forUserID:
 设置远端用户视图。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。 更多...
 
(int) - switchCamera
 切换前置/后置摄像头。
该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。 更多...
 
(int) - setClientRole:
 在直播场景中设置用户角色。
用户角色支持设置为主播或观众,主播和观众的权限不同。 更多...
 
(int) - setParameters:
 设置音视频通话的相关参数。 更多...
 

详细描述


NERtcEngine 扩展接口

函数文档

◆ addEngineMediaStatsObserver:

- (int) addEngineMediaStatsObserver: (id< NERtcEngineMediaStatsObserver >)  observer

注册媒体统计信息观测器。

参数
observer统计信息观测器。详细信息请参考 NERtcEngineMediaStatsObserver
返回
操作返回值,成功则返回 0

◆ addLiveStreamTask:compeltion:

- (int) addLiveStreamTask: (NERtcLiveStreamTaskInfo *)  taskInfo
compeltion: (NERtcLiveStreamCompletion completion 

添加房间推流任务。
成功调用该方法后,当前用户可以收到该直播流的状态通知。

参数
taskInfo推流任务信息,详细信息请参考 NERtcLiveStreamTaskInfo
completion操作结果回调,方法调用成功后会触发对应回调。详细信息请参考 NERtcLiveStreamCompletion
返回
操作返回值,成功则返回 0
注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
  • 该方法每次只能增加一路旁路推流地址。如需推送多路流,则需多次调用该方法。同一个音视频房间(即同一个 channelid)可以创建 3 个不同的推流任务。

◆ adjustPlaybackSignalVolume:

- (int) adjustPlaybackSignalVolume: (uint32_t)  volume

调节本地播放的所有远端用户信号音量。

参数
volume播放音量。取值范围为 [0, 400]。其中:
  • 0:静音。
  • 100:(默认)原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ adjustRecordingSignalVolume:

- (int) adjustRecordingSignalVolume: (uint32_t)  volume

调节采集信号音量。

参数
volume采集信号音量,取值范围为 [0, 400]。其中:
  • 0:静音。
  • 100:(默认)原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ adjustUserPlaybackSignalVolume:forUserID:

- (int) adjustUserPlaybackSignalVolume: (uint32_t)  volume
forUserID: (uint64_t)  userID 

调节本地播放的指定远端用户的信号音量。
加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。

注解
  • 请在成功加入房间后调用该方法。
  • 该方法在本次通话中有效。如果远端用户中途退出房间,则再次加入此房间时仍旧维持该设置,通话结束后设置失效。
  • 该方法调节的是本地播放的指定远端用户混音后的音量,且每次只能调整一位远端用户。若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
参数
userID远端用户 ID。
volume播放音量,取值范围为 [0,100]。
  • 0:静音。
  • 100:原始音量。
返回
操作返回值,成功则返回 0

◆ cleanupEngineMediaStatsObserver

- (int) cleanupEngineMediaStatsObserver

清除全部媒体统计信息观测器。

返回
操作返回值,成功则返回 0

◆ createChannel:

- (nullable NERtcChannel *) createChannel: (NSString *)  channelName

创建一个 IRtcChannel 对象

参数
[in]channelName房间名。设置相同房间名称的用户会进入同一个通话房间。字符串格式,长度为1~ 64 字节。支持以下89个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”
返回
返回 IRtcChannel 对象
  • 0: 方法调用失败。

◆ enableAudioVolumeIndication:interval:

- (int) enableAudioVolumeIndication: (BOOL)  enable
interval: (uint64_t)  interval 

启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息,即当前谁在说话以及说话者的音量。
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 onRemoteAudioVolumeIndication 回调。

参数
enable是否启用说话者音量提示。
interval指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
返回
操作返回值,成功则返回 0

◆ enableDualStreamMode:

- (int) enableDualStreamMode: (BOOL)  enable

设置是否开启视频大小流模式。
该方法设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。

注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 该方法只对摄像头数据生效,自定义输入、屏幕共享等视频流无效。
  • 该方法在加入房间前后都能调用。
参数
enableYES 发送双流, NO 发送单流。
返回
操作返回值,成功则返回 0

◆ enableEarback:volume:

- (int) enableEarback: (BOOL)  enabled
volume: (uint32_t)  volume 

开启耳返功能。

注解
  • 请在房间内调用该方法。
  • 开启耳返功能后,必须连接上耳机或耳麦,才能正常使用耳返功能。建议通过 onAudioDeviceChanged 监听播放设备的变化,当监听到播放设备切换为耳机时才开启耳返。
  • 在V4.0.0 版本中,enableEarback 的 volume 参数无效,请使用 setEarbackVolume 接口设置耳返音量。
参数
enabled开启耳返功能。
volume设置耳返音量,可设置为0~100,默认为 100。
返回
操作返回值,成功则返回 0

◆ enableEncryption:config:

- (int) enableEncryption: (BOOL)  enable
config: (NERtcEncryptionConfig *)  config 

开启或关闭媒体流加密。

自从
V4.4.0 在金融行业等安全性要求较高的场景下,您可以在加入房间前通过此方法设置媒体流加密模式。
注解
  • 请在加入房间前调用该方法,加入房间后无法修改加密模式与密钥。用户离开房间后,SDK 会自动关闭加密。如需重新开启加密,需要在用户再次加入房间前调用此方法。
  • 同一房间内,所有开启媒体流加密的用户必须使用相同的加密模式和密钥,否则使用不同密钥的成员加入房间时会报错 kNERtcErrEncryptNotSuitable(30113)。
  • 安全起见,建议每次启用媒体流加密时都更换新的密钥。
参数
enable是否开启媒体流加密。
  • YES: 开启
  • NO:(默认)关闭
config媒体流加密方案。详细信息请参考 NERtcEncryptionConfig。
返回
0
方法调用成功,其他调用失败

◆ enableSuperResolution:

- (int) enableSuperResolution: (BOOL)  enabled

启用或停止 AI 超分。

自从
V4.4.0
注解
  • 使用 AI 超分功能之前,请联系技术支持开通 AI 超分功能。
  • AI 超分仅对以下类型的视频流有效:
  • 必须为本端接收到第一路 360P 的视频流。
  • 必须为摄像头采集到的主流大流视频。AI 超分功能暂不支持复原重建小流和屏幕共享辅流。
参数
enabled是否启用 AI 超分。默认为关闭状态。
返回
0
方法调用成功,其他调用失败

◆ enableVideoCorrection:

- (int) enableVideoCorrection: (BOOL)  enable

是否启用视频图像畸变矫正。

自从
V4.6.0
注解
  • 当使用相机去拍摄物体时,存在着一个从三维世界到二维图像的映射过程,这个过程中由于相机位置的变化和移动,会对拍摄物体的成像产生一定的形变影响。
  • 开启该功能时,根据合适的参数,可以通过算法把这个形变进行复原。
  • 使用该功能时,本地画布的渲染模式需要为 fit(即视频帧保持自身比例不变全部显示在当前视图中),否则矫正功能可能不会正常生效。
  • 矫正参数生效后,本地画面和对端看到的画面,均会是矫正以后的画面。
参数
enable是否开启视频图像矫正。
  • true:开启视频图像矫正。
  • false(默认):关闭视频图像矫正。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ getAudioMixingCurrentPosition:

- (int) getAudioMixingCurrentPosition: (uint64_t *)  position

获取音乐文件的播放进度。
该方法获取当前伴奏播放进度,单位为毫秒。请在房间内调用该方法。

参数
position音乐文件的播放位置,单位为毫秒。
返回
操作返回值,成功则返回 0

◆ getAudioMixingDuration:

- (int) getAudioMixingDuration: (uint64_t *)  duration

获取伴奏时长。
该方法获取伴奏时长,单位为毫秒。请在房间内调用该方法。

参数
duration伴奏时长,单位为毫秒。
返回
操作返回值,成功则返回 0

◆ getAudioMixingPlaybackVolume:

- (int) getAudioMixingPlaybackVolume: (uint32_t *)  volume

获取伴奏播放音量。
该方法获取混音里伴奏的播放音量大小。请在房间内调用该方法。

参数
volume伴奏播放音量。范围为 0~100。
返回
操作返回值,成功则返回 0

◆ getAudioMixingSendVolume:

- (int) getAudioMixingSendVolume: (uint32_t *)  volume

获取伴奏发送音量。
该方法获取混音里伴奏的发送音量大小。请在房间内调用该方法。

参数
volume伴奏发送音量。
返回
操作返回值,成功则返回 0

◆ getEffectCurrentPositionWithId:position:

- (int) getEffectCurrentPositionWithId: (uint32_t)  effectId
position: (uint64_t *)  position 

获取音效的播放进度。

自从
V4.4.0 该方法获取当前音效播放进度,单位为毫秒。
注解
请在房间中调用该方法。
参数
[in]effectId音效 ID。
[out]position音效文件的播放位置,单位为毫秒。
返回
操作返回值,成功则返回 0

◆ getEffectDurationWithId:duration:

- (int) getEffectDurationWithId: (uint32_t)  effectId
duration: (uint64_t *)  duration 

获取音效文件时长。

自从
V4.4.0 该方法获取音效文件时长,单位为毫秒。
注解
请在房间内调用该方法。
参数
[in]effectId音效 ID。
[out]duration音效文件时长,单位为毫秒。
返回
操作返回值,成功则返回 0

◆ getEffectPlaybackVolumeWithId:volume:

- (int) getEffectPlaybackVolumeWithId: (uint32_t)  effectId
volume: (uint32_t *)  volume 

获取音效的回放音量

参数
effectId音效 ID。
volume返回的音量值
返回
操作返回值,成功则返回 0

◆ getEffectSendVolumeWithId:volume:

- (int) getEffectSendVolumeWithId: (uint32_t)  effectId
volume: (uint32_t *)  volume 

获取指定音效文件发送音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
volume返回的发送音量。
返回
操作返回值,成功则返回 0

◆ getLoudspeakerMode:

- (int) getLoudspeakerMode: (bool *)  enabled

检查扬声器状态启用状态。

注解
该方法可在加入房间前后调用。
参数
enabled是否正在使用扬声器模式。
返回
操作返回值,成功则返回 0

◆ getPlayoutDeviceMute:

- (int) getPlayoutDeviceMute: (bool *)  muted

获取音频播放设备的静音状态。

参数
muted是否静音。
返回
操作返回值,成功则返回 0

◆ getRecordDeviceMute:

- (int) getRecordDeviceMute: (bool *)  muted

查询当前音频采集设备是否静音。

参数
muted是否静音。
返回
操作返回值,成功则返回 0

◆ isCameraExposurePositionSupported

- (BOOL) isCameraExposurePositionSupported

检测设备是否支持手动曝光功能。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
YES 表示支持,NO 表示不支持。

◆ isCameraFocusSupported

- (BOOL) isCameraFocusSupported

检测设备是否支持手动对焦功能。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
YES 表示支持,NO 表示不支持。

◆ isCameraTorchOn

- (BOOL) isCameraTorchOn

查询设备是否开启了闪光灯。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
YES 表示开启;NO 表示关闭。

◆ isCameraTorchSupported

- (BOOL) isCameraTorchSupported

检测设备是否支持闪光灯常亮。

注解
  • 一般情况下,App 默认开启前置摄像头,因此如果设备前置摄像头不支持闪光灯,直接使用该方法会返回 NO。如果需要检查后置摄像头是否支持闪光灯,需要先使用switchCamera切换摄像头,再使用该方法。
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
YES 表示支持,NO 表示不支持。

◆ isCameraZoomSupported

- (BOOL) isCameraZoomSupported

检测设备当前使用的摄像头是否支持缩放功能。
该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
YES 表示支持,NO 表示支持。

◆ maxCameraZoomScale

- (float) maxCameraZoomScale

获取摄像头支持最大缩放比例。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
最大缩放比例。

◆ muteLocalAudio:

- (int) muteLocalAudio: (BOOL)  muted

开关本地音频发送。
该方法用于允许或禁止向网络发送本地音频流。

注解
  • 该方法不影响音频采集状态,因为并没有禁用音频采集设备。
  • 静音状态会在通话结束后被重置为非静音。
  • 成功调用该方法后,房间内其他用户会收到 onNERtcEngineUser:audioMuted 回调。
参数
muted是否开启本地音频发送。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ muteLocalVideo:

- (int) muteLocalVideo: (BOOL)  muted

取消或恢复发布本地视频流。

注解
  • 调用该方法取消发布本地视频流后,SDK 不再发送本地视频流。
  • 该方法在加入房间前后均可调用。
  • 若调用该方法取消发布本地视频流,通话结束后会被重置为默认状态,即默认发布本地视频流。
  • 该方法与 enableLocalVideo 的区别在于,enableLocalVideo 会关闭本地摄像头设备,muteLocalVideo 不影响本地视频流采集,不禁用摄像头,且响应速度更快。
  • 成功调用该方法后,远端会触发 onNERtcEngineUser:videoMuted: 回调。
参数
muted是否取消发布本地视频流。
  • true:不发布本地视频流。
  • false:(默认)发布本地视频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pauseAllEffects

- (int) pauseAllEffects

暂停播放所有音效文件。
请在加入房间后调用该方法。

返回
操作返回值,成功则返回 0

◆ pauseAudioMixing

- (int) pauseAudioMixing

暂停播放音乐文件及混音。
该方法暂停播放伴奏。请在房间内调用该方法。

返回
操作返回值,成功则返回 0

◆ pauseEffectWitdId:

- (int) pauseEffectWitdId: (uint32_t)  effectId

暂停播放指定音效文件。
请在加入房间后调用该方法。

参数
effectId音效 ID。
返回
操作返回值,成功则返回 0

◆ playEffectWitdId:effectOption:

- (int) playEffectWitdId: (uint32_t)  effectId
effectOption: (NERtcCreateAudioEffectOption *)  option 

播放指定音效文件。
该方法播放指定的本地或在线音效文件。

  • 成功调用该方法后,如果播放结束,本地会触发 onAudioEffectFinished 回调。
  • 支持的音效文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件和在线 URL。
    注解
  • 请在加入房间后调用该方法。
  • 您可以多次调用该方法,通过传入不同的音效文件的 effectId 和 option ,同时播放多个音效文件,实现音效叠加。为获得最佳用户体验,建议同时播放的音效文件不超过 3 个。
    参数
    effectId指定音效的 ID。每个音效均应有唯一的 ID。
    option音效相关参数,包括混音任务类型、混音文件路径等。详细信息请参考 NERtcCreateAudioEffectOption
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pullExternalAudioFrame:length:

- (int) pullExternalAudioFrame: (void *_Nonnull)  data
length: (int)  len 

拉取外部音频数据。
该方法将从内部引擎拉取音频数据。 通过 setExternalAudioRender 启用外部音频数据渲染功能成功后,可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。

注解
  • 该方法需要在加入房间后调用。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频渲染设备关闭后不再生效,此时会返回空数据。例如通话结束、通话前扬声器设备测试关闭等情况下,该设置不再生效。
参数
data数据指针。
len待拉取音频数据的字节数,单位为 byte。建议音频数据的时长至少为 10 毫秒,数据长度不能超过 7680字节。
计算公式为: len = sampleRate/1000 × 2 × channels × 音频数据时长(毫秒)。
返回
操作返回值,成功则返回 0

◆ pushExternalAudioFrame:

- (int) pushExternalAudioFrame: (NERtcAudioFrame *)  frame

推送外部音频帧。
将外部音频数据帧推送给内部引擎。 通过 setExternalAudioSource 启用外部音频数据输入功能成功后,可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。

注解
  • 该方法需要在加入房间后调用。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频输入设备关闭后不再生效。例如关闭本地音频、通话结束、通话前麦克风设备测试关闭等情况下,该设置不再生效。
参数
frame外部音频帧数据;数据长度不能超过 7680 字节,和调用周期时长一致。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pushExternalVideoFrame:

- (int) pushExternalVideoFrame: (NERtcVideoFrame *)  frame

推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。

注解
  • 该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。
  • 请确保在您调用本方法前已调用 setExternalVideoSource,并将参数设为 YES,否则调用本方法后会一直报错。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
frame外部视频帧的数据信息。详细信息请参考 NERtcVideoFrame
返回
  • 0:方法调用成功;
  • 其他:方法调用失败。

◆ removeEngineMediaStatsObserver:

- (int) removeEngineMediaStatsObserver: (id< NERtcEngineMediaStatsObserver >)  observer

移除指定媒体统计信息观测器。

参数
observer统计信息观测器
返回
操作返回值,成功则返回 0

◆ removeLiveStreamTask:compeltion:

- (int) removeLiveStreamTask: (NSString *)  taskId
compeltion: (NERtcLiveStreamCompletion completion 

删除房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
参数
taskId推流任务 ID。
completion操作结果回调,方法调用成功后会触发对应回调。详细信息请参考 NERtcLiveStreamCompletion
返回
操作返回值,成功则返回 0

◆ resumeAllEffects

- (int) resumeAllEffects

恢复播放所有音效文件。
请在加入房间后调用该方法。

返回
操作返回值,成功则返回 0

◆ resumeAudioMixing

- (int) resumeAudioMixing

该方法恢复混音,继续播放伴奏。请在房间内调用该方法。

返回
操作返回值,成功则返回 0

◆ resumeEffectWitdId:

- (int) resumeEffectWitdId: (uint32_t)  effectId

恢复播放指定音效文件。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
操作返回值,成功则返回 0

◆ sendSEIMsg:

- (int) sendSEIMsg: (NSData *)  data

通过主流通道发送媒体增强补充信息(SEI)。
在本端推流传输音视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。

  • 调用时机:视频流(主流、辅流)开启后,可调用此函数。
  • 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
  • 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
  • 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
    注解
  • SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
  • 调用本接口时,默认使用主流通道发送 SEI。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
    参数
    data自定义 SEI 数据。
    返回
    操作返回值,成功则返回 0
  • 成功: 成功进入待发送队列,会在最近的视频帧之后发送该数据
  • 失败: 数据被限制发送,可能发送的频率太高,队列已经满了,或者数据大小超过最大值 4k

◆ sendSEIMsg:streamChannelType:

- (int) sendSEIMsg: (NSData *)  data
streamChannelType: (NERtcStreamChannelType type 

指定主流或辅流通道发送媒体增强补充信息(SEI)。
在本端推流传输音视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。

  • 调用时机:视频流(主流、辅流)开启后,可调用此函数。
  • 数据长度限制: SEI 最大数据长度为 4096 字节,超限会发送失败。如果频繁发送大量数据会导致视频码率增大,可能会导致视频画质下降甚至卡顿。
  • 发送频率限制:最高为视频发送的帧率,建议不超过 10 次/秒。
  • 生效时间:调用本接口之后,最快在下一帧视频数据帧之后发送 SEI 数据,最慢在接下来的 5 帧视频之后发送。
    注解
  • SEI 数据跟随视频帧发送,由于在弱网环境下可能丢帧,SEI 数据也可能随之丢失,所以建议在发送频率限制之内多次发送,保证接收端收到的概率。
  • 指定通道发送 SEI 之前,需要提前开启对应的数据流通道。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
    参数
    data自定义 SEI 数据。
    type发送 SEI 时,使用的流通道类型。详细信息请参考 NERtcStreamChannelType
    返回
    操作返回值,成功则返回 0
  • 成功: 成功进入待发送队列,会在最近的视频帧之后发送该数据。
  • 失败: 数据被限制发送,可能发送的频率太高,队列已经满了,或者数据大小超过最大值 4k。

◆ setAudioEffectPreset:

- (int) setAudioEffectPreset: (NERtcVoiceChangerType type

设置 SDK 预设的人声的变声音效。
设置变声音效可以将人声原音调整为多种特殊效果,改变声音特性。

注解
  • 此方法在加入房间前后都能调用,通话结束后重置为默认关闭状态。
  • 此方法和 setLocalVoicePitch 互斥,调用此方法后,本地语音语调会恢复为默认值 1.0。
参数
type预设的变声音效。默认关闭变声音效。详细信息请参考 NERtcVoiceChangerType
返回
操作返回值,成功则返回 0

◆ setAudioFrameObserver:

- (int) setAudioFrameObserver: (nullable id< NERtcEngineAudioFrameObserver >)  observer

注册语音观测器对象。
该方法用于设置音频采集/播放 PCM 回调,可用于声音处理等操作。当需要引擎返回 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord:NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 回调时,需要使用该方法注册回调。

注解
该方法在加入房间前后均可设置或修改。
参数
observer音频数据帧观测器。
如果传入 NULL,则取消注册,同时会清理 NERtcAudioFrameRequestFormat 相关设置。详细信息请参考 NERtcEngineAudioFrameObserver
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setAudioMixingPlaybackVolume:

- (int) setAudioMixingPlaybackVolume: (uint32_t)  volume

调节伴奏播放音量。
该方法调节混音里伴奏的播放音量大小。请在房间内调用该方法。

参数
volume伴奏播放音量。取值范围为 0~100。默认 100,即原始文件音量。
返回
操作返回值,成功则返回 0

◆ setAudioMixingPosition:

- (int) setAudioMixingPosition: (uint64_t)  position

设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。

参数
position音乐文件的播放位置,单位为毫秒。
返回
操作返回值,成功则返回 0

◆ setAudioMixingSendVolume:

- (int) setAudioMixingSendVolume: (uint32_t)  volume

设置伴奏的发送音量。

参数
volume伴奏发送音量。取值范围为 0~100。默认 100,即原始文件音量。
返回
操作返回值,成功则返回 0

◆ setAudioSessionOperationRestriction:

- (int) setAudioSessionOperationRestriction: (NERtcAudioSessionOperationRestriction restriction

设置 SDK 对 Audio Session 的控制权限。
该方法仅适用于 iOS 平台。
该方法限制 SDK 对 Audio Session 的操作权限。在默认情况下,SDK 和 App 对 Audio Session 都有控制权,但某些场景下,App 会希望限制 SDK 对 Audio Session 的控制权限,而使用其他应用或第三方组件对 Audio Session 进行操控。调用该方法可以实现该功能。
该接口只能在入会之前调用。

注解
一旦调用该方法限制了 SDK 对 Audio Session 的控制权限, SDK 将无法对 Audio Session 进行相关设置,而需要用户自己或第三方组件进行维护。
参数
restrictionSDK 对 Audio Session 的控制权限。详细信息请参考 NERtcAudioSessionOperationRestriction
返回
操作返回值,成功则返回 0

◆ setCameraCaptureConfig:

- (int) setCameraCaptureConfig: (NERtcCameraCaptureConfiguration *)  config

设置本地摄像头的采集偏好等配置。
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 根据用户的 setLocalVideoConfig 配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。

  • 需要采集并预览高清画质时,可以将采集偏好设置为 kNERtcCameraOutputQuality,此时 SDK 会自动设置较高的摄像头输出参数,本地采集与预览画面比编码参数更加清晰。
  • 需要自定义设置摄像头采集的视频尺寸时,请通过参数 preference 将采集偏好设为 kNERtcCameraOutputManual,并通过 NERtcCameraPreference 中的 captureWidth 和 captureHeight 自定义设置本地摄像头采集的视频宽高。
    注解
  • 该方法可以在加入房间前后动态调用,设置成功后,会自动重启采集模块。
  • 设置更高的采集参数会导致更大的性能消耗,例如 CPU 和内存占用等,尤其是在开启视频前处理的场景下。
    自从
    V4.5.0
    参数
    config摄像头采集配置。
    返回
    0
    方法调用成功,其他调用失败

◆ setCameraExposurePosition:

- (int) setCameraExposurePosition: (CGPoint)  positionInView

设置当前摄像头手动曝光位置。
成功调用该方法后,本地会触发 onCameraExposureChanged 回调。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
positionInView曝光位置点。
返回
操作返回值,成功则返回 0

◆ setCameraFocusPositionX:Y:

- (int) setCameraFocusPositionX: (float)  focusX
Y: (float)  focusY 

设置手动对焦位置。
成功调用该方法后,本地会触发 onNERtcCameraFocusChanged 回调。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
focusX触摸点相对于视图的横坐标,范围为 0~1。
focusY触摸点相对于视图的纵坐标,范围为 0~1。
返回
操作返回值,成功则返回 0

◆ setCameraTorchOn:

- (int) setCameraTorchOn: (BOOL)  on

设置是否打开闪光灯。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
onYES 表示开启;NO 表示关闭。
返回
操作返回值,成功则返回 0

◆ setCameraZoomFactor:

- (int) setCameraZoomFactor: (float)  factor

设置当前摄像头缩放比例。

注解
  • 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
  • 建议在调用本接口前,先通过 getCameraMaxZoom 查看摄像头支持的最大缩放比例,并根据实际需求合理设置需要的缩放比例。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
factor摄像头缩放比例。
返回
操作返回值,成功则返回 0

◆ setCloudProxy:

- (int) setCloudProxy: (NERtcTransportType proxyType

开启并设置云代理服务。
在内网环境下,如果用户防火墙开启了网络限制,请参考《使用云代理》将指定 IP 地址和端口号加入防火墙白名单,然后调用此方法开启云代理,并将 proxyType 参数设置为 NERtcTransportTypeUDPProxy(1),即指定使用 UDP 协议的云代理。

  • 成功连接云代理后,SDK 会触发 onNERtcEngineConnectionStateChangeWithState(kNERtcConnectionStateConnecting, kNERtcReasonConnectionChangedSettingProxyServer) 回调。
  • 如果需要关闭已设置的云代理,请调用 setCloudProxy(NERtcTransportTypeNoneProxy)
    注解
    请在加入房间前调用此方法。
    参数
    proxyType云代理类型。详细信息请参考 NERtcTransportType。该参数为必填参数,若未赋值,SDK 会报错。
    返回
    0
    方法调用成功,其他失败。

◆ setEarbackVolume:

- (int) setEarbackVolume: (uint32_t)  volume

设置耳返音量。

参数
volume设置耳返音量,可设置为0~100,默认为 100。
返回
操作返回值,成功则返回 0

◆ setEffectPlaybackVolumeWithId:volume:

- (int) setEffectPlaybackVolumeWithId: (uint32_t)  effectId
volume: (uint32_t)  volume 

获取音效文件播放音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
volume音效播放音量。范围为0~100,默认为100。
返回
操作返回值,成功则返回 0

◆ setEffectSendVolumeWithId:volume:

- (int) setEffectSendVolumeWithId: (uint32_t)  effectId
volume: (uint32_t)  volume 

设置音效文件发送音量。
请在加入房间后调用该方法。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
volume音效发送音量。范围为0~100,默认为 100,表示原始音量。
返回
操作返回值,成功则返回 0

◆ setExternalAudioRender:sampleRate:channels:

- (int) setExternalAudioRender: (BOOL)  enabled
sampleRate: (int32_t)  sampleRate
channels: (int32_t)  channels 

设置外部音频渲染。
该方法适用于需要自行渲染音频的场景。默认为关闭状态。当该方法调用成功后,音频播放设备选择和异常重启失效。
调用成功后可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。

注解
  • 请在加入房间前调用该方法。
  • 该方法设置内部引擎为启用状态,启动时将用虚拟设备代替扬声器工作,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭外部音频数据渲染功能。
  • 启用外部音频渲染功能后,SDK 内部实现部分扬声器由外部输入数据代替,扬声器相关的设置会失败或不在通话中生效。例如进行 loopback 检测时,需要由外部渲染播放。
参数
enabled设置是否开启外部音频渲染。
sampleRate外部音频渲染的采样率 (Hz),可设置为 16000,32000,44100 或 48000。
channels外部音频渲染的声道数,可设置为:
  • 1:单声道
  • 2:双声道
返回
操作返回值,成功则返回 0

◆ setExternalAudioSource:sampleRate:channels:

- (int) setExternalAudioSource: (BOOL)  enabled
sampleRate: (int32_t)  sampleRate
channels: (int32_t)  channels 

开启或关闭外部音频源数据输入。
当该方法调用成功后,音频输入设备选择和异常重启会失效。调用成功后可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。

注解
  • 请在加入房间前调用该方法。
  • 该方法设置内部引擎为启用状态,启动时将用虚拟设备代替麦克风工作,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭外部音频数据输入功能。
  • 启用外部音频数据输入功能后,SDK 内部实现部分麦克风由外部输入数据代替,麦克风相关的设置会失败或不在通话中生效。例如进行 loopback 检测时,会听到输入的外部数据。
参数
enabled是否开启外部数据输入。默认为 NO。
sampleRate外部音频源的数据采样率,单位为 Hz。建议设置为 8000,16000,32000,44100 或 48000。
channels外部音频源的数据声道数。可设置为:
  • 1:单声道。
  • 2:双声道。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setExternalVideoSource:isScreen:

- (int) setExternalVideoSource: (BOOL)  enable
isScreen: (BOOL)  isScreen 

开启或关闭外部视频源数据输入。

  • 该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭该功能。
  • 如果使用了外部视频源,请在调用 startScreenCapture、enableLocalVideo 或 startPreview 之前调用此 API。
  • 屏幕共享时,外部输入视频源默认使用辅流通道;非屏幕共享时,外部输入视频源使用主流通道,此时与 Camera 互斥。
  • 之前使用主流通道或者当前使用主流通道,且主流已经开启时,请勿更改设置。之前使用辅流通道或者当前使用辅流通道,且辅流已经开启时,请勿更改设置。
    注解
    纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
    参数
    enable是否使用外部视频源。
  • true:使用外部视频源。
  • false:(默认)不使用外部视频源。
    参数
    isScreen使用外部视频源时,外部视频源是否为屏幕共享数据。
    返回
  • 0:方法调用成功;
  • 其他:方法调用失败。

◆ setLocalCanvasWatermarkConfigs:withStreamType:

- (int) setLocalCanvasWatermarkConfigs: (nullable NERtcCanvasWatermarkConfig *)  config
withStreamType: (NERtcStreamChannelType type 

添加本地视频画布水印。

注解
  • setLocalCanvasWatermarkConfigs 方法作用于本地视频画布,不影响视频流。画布被移除时,水印也会自动移除。
  • 设置水印之前,需要先通过画布相关方法设置画布。
参数
type视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcStreamChannelType
config画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。详细信息请参考 NERtcCanvasWatermarkConfig
注解
纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频SDK
返回
操作返回值,成功则返回 0

◆ setLocalMediaPriority:preemptive:

- (int) setLocalMediaPriority: (NERtcMediaPriorityType priority
preemptive: (BOOL)  preemptive 

设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证其他用户收到的、高优先级用户的媒体流的质量。

注解
  • 请在加入房间(joinChannel)前调用此方法。
  • 快速切换房间 (switchChannel) 后,媒体优先级会恢复为默认值,即普通优先级。
    参数
    priority本地用户的媒体流优先级,默认为 kNERtcMediaPriorityNormal ,即普通优先级。详细信息请参考 NERtcMediaPriorityType
    preemptive是否开启抢占模式,默认为 NO,即不开启。
    • 抢占模式开启后,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
    • 抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。
    返回
    操作返回值,成功则返回 0

◆ setLocalPublishFallbackOption:

- (int) setLocalPublishFallbackOption: (NERtcStreamFallbackOptions option

设置弱网条件下发布的音视频流回退选项。
在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后:

  • SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,尽量保证音频质量。
  • 同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。
  • 当本地发布的音视频流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发本地发布的媒体流已回退为音频流 onLocalPublishFallbackToAudioOnly 回调。
    注解
    请在加入房间(joinChannel)前调用此方法。
    自从
    V4.3.0
    参数
    option发布音视频流的回退选项,默认为不开启回退。 详细信息请参考 NERtcStreamFallbackOptions
    返回
    操作返回值,成功则返回 0

◆ setLocalRenderScaleMode:

- (int) setLocalRenderScaleMode: (NERtcVideoRenderScaleMode mode

设置本端的视频显示模式。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
mode视频显示模式。详细信息请参考 NERtcVideoRenderScaleMode
返回
操作返回值,成功则返回 0

◆ setLocalRenderSubStreamScaleMode:

- (int) setLocalRenderSubStreamScaleMode: (NERtcVideoRenderScaleMode mode

设置本端的屏幕共享辅流视频显示模式。
在本端开启辅流形式的屏幕共享时使用。App 可以多次调用此方法更改显示模式。

注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 调用此方法前,必须先通过 setupLocalSubStreamVideoCanvas 设置本地辅流画布。
参数
mode视频显示模式。详细信息请参考 NERtcVideoRenderScaleMode
返回
操作返回值,成功则返回 0

◆ setLocalVoiceEqualizationOfBandFrequency:withGain:

- (int) setLocalVoiceEqualizationOfBandFrequency: (NERtcAudioEqualizationBandFrequency bandFrequency
withGain: (NSInteger)  gain 

设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。

注解
该方法在加入房间前后都能调用,通话结束后重置为默认关闭状态。
参数
bandFrequency频谱子带索引,取值范围是 [0-9],分别代表 10 个频带,对应的中心频率是 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。
gain每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0。
返回
操作返回值,成功则返回 0

◆ setLocalVoicePitch:

- (int) setLocalVoicePitch: (double)  pitch

设置本地语音音调。
该方法改变本地说话人声音的音调。

注解
  • 通话结束后该设置会重置,默认为 1.0。
  • 此方法与 setAudioEffectPreset 互斥,调用此方法后,已设置的变声效果会被取消。
参数
pitch语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。
返回
操作返回值,成功则返回 0

◆ setLoudspeakerMode:

- (int) setLoudspeakerMode: (bool)  enable

启用或关闭扬声器播放。
该方法设置是否将语音路由到扬声器,即设备外放。

注解
该方法需要在加入房间后调用。
参数
enable是否将音频路由到外放。
返回
操作返回值,成功则返回 0

◆ setMixedAudioFrameParameters:

- (int) setMixedAudioFrameParameters: (nullable NERtcAudioFrameRequestFormat *)  format

设置录制和播放声音混音后的数据格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineMixedAudioFrame: 回调的声音格式。

◆ setPlaybackAudioFrameParameters:

- (int) setPlaybackAudioFrameParameters: (nullable NERtcAudioFrameRequestFormat *)  format

设置播放的声音格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 回调的播放声音格式。

注解
  • 该方法在加入房间前后均可设置或修改。
  • 取消监听,重置为空。
参数
format指定 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameWillPlayback: 中返回数据的采样率和数据的通道数。
允许传入 nil,默认为 nil,表示使用音频的原始格式。详细信息请参考 NERtcAudioFrameRequestFormat
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setPlayoutDeviceMute:

- (int) setPlayoutDeviceMute: (bool)  muted

设置是否静音音频播放设备。

参数
muted是否静音播放设备。默认为不静音状态。
返回
操作返回值,成功则返回 0

◆ setRecordDeviceMute:

- (int) setRecordDeviceMute: (bool)  muted

设置是否静音音频采集设备。

参数
muted是否静音音频采集设备。默认为不静音。
返回
操作返回值,成功则返回 0

◆ setRecordingAudioFrameParameters:

- (int) setRecordingAudioFrameParameters: (nullable NERtcAudioFrameRequestFormat *)  format

设置采集的音频格式。
该方法设置 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord: 回调的录制声音格式。

注解
  • 该方法在加入房间前后均可设置或修改。
  • 取消监听,重置为空。
参数
format指定 NERtcEngineAudioFrameObserver#onNERtcEngineAudioFrameDidRecord: 中返回数据的采样率和数据的通道数。
允许传入 nil,默认为 nil,表示使用音频的原始格式。详细信息请参考 NERtcAudioFrameRequestFormat
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ setRemoteCanvasWatermarkConfigs:forUserID:withStreamType:

- (int) setRemoteCanvasWatermarkConfigs: (nullable NERtcCanvasWatermarkConfig *)  config
forUserID: (uint64_t)  userID
withStreamType: (NERtcStreamChannelType type 

添加远端视频画布水印。

注解
  • setRemoteCanvasWatermarkConfigs 方法作用于远端视频画布,不影响视频流。画布被移除时,水印也会自动移除。
  • 设置水印之前,需要先通过画布相关方法设置画布。
参数
userID远端用户 ID。
type视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcStreamChannelType
config画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。详细信息请参考 NERtcCanvasWatermarkConfig
注解
纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
操作返回值,成功则返回 0

◆ setRemoteHighPriorityAudioStream:forUserID:streamType:

- (int) setRemoteHighPriorityAudioStream: (BOOL)  enable
forUserID: (uint64_t)  userID
streamType: (NERtcAudioStreamType streamType 

设置远端用户音频流的高优先级。 支持在音频自动订阅的情况下,设置某一个远端用户的音频为最高优先级,可以优先听到该用户的音频。

注解
  • 该接口需要通话中设置,并需要自动订阅打开(默认打开)。
  • 该接口只能设置一个用户的优先级,后设置的会覆盖之前的设置。
  • 该接口通话结束后,优先级设置重置。
自从
V4.6.0
参数
enable是否设置音频订阅优先级。
  • true:设置音频订阅优先级。
  • false:取消设置音频订阅优先级。
userID用户 ID
streamType订阅音频流的类型。默认为 kNERtcAudioStreamMain。
返回
操作返回值,成功则返回 0。

◆ setRemoteRenderScaleMode:forUserID:

- (int) setRemoteRenderScaleMode: (NERtcVideoRenderScaleMode mode
forUserID: (uint64_t)  userID 

设置远端的视频显示模式。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
mode视频显示模式。详细信息请参考 NERtcVideoRenderScaleMode
userID远端用户 ID。
返回
操作返回值,成功则返回 0

◆ setRemoteRenderSubStreamVideoScaleMode:forUserID:

- (int) setRemoteRenderSubStreamVideoScaleMode: (NERtcVideoRenderScaleMode mode
forUserID: (uint64_t)  userID 

设置远端的屏幕共享辅流视频显示模式。

注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 调用本接口之前,请先通过 subscribeRemoteSubStreamVideo 订阅远端的屏幕共享辅流视频。
参数
mode视频显示模式。详细信息请参考 NERtcVideoRenderScaleMode
userID远端用户 ID。
返回
操作返回值,成功则返回 0

◆ setRemoteSubscribeFallbackOption:

- (int) setRemoteSubscribeFallbackOption: (NERtcStreamFallbackOptions option

设置弱网条件下订阅的音视频流回退选项。
弱网环境下,订阅的音视频质量会下降。通过该接口设置订阅音视频流的回退选项后:

  • SDK 会在下行弱网且音视频质量严重受影响时,将视频流切换为小流,或关断视频流,从而保证或提高通信质量。
  • SDK 会持续监控网络质量,并在网络质量改善时自动恢复音视频流。
  • 当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发远端订阅流已回退为音频流回调。
    注解
    请在加入房间(joinChannel)前调用此方法。
    自从
    V4.3.0
    参数
    option订阅音视频流的回退选项,默认为弱网时回退到视频小流。详细信息请参考 NERtcStreamFallbackOptions
    返回
    操作返回值,成功则返回 0

◆ setupLocalSubStreamVideoCanvas:

- (int) setupLocalSubStreamVideoCanvas: (NERtcVideoCanvas *)  canvas

设置本地辅流视频画布。
该方法设置本地辅流视频显示信息。App 通过调用此接口绑定本地辅流的显示视窗(view)。 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。

注解
  • 若使用外部渲染,建议在加入房间之前设置。
  • 请在初始化后调用该方法,然后再加入房间。
  • 同一个画布只能设置给一个用户。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
canvas视频画布。详细信息请参考 NERtcVideoCanvas。删除画布设置时请传 nil。
返回
操作返回值,成功则返回 0

◆ setupRemoteSubStreamVideoCanvas:forUserID:

- (int) setupRemoteSubStreamVideoCanvas: (NERtcVideoCanvas *)  canvas
forUserID: (uint64_t)  userID 

设置远端的辅流视频画布。
该方法绑定远端用户和辅流显示视图,即指定某个 userID 使用对应的画布显示。

注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 若使用外部渲染,建议在收到 onNERtcEngineUserDidJoinWithUserID 后设置。
  • 如果 App 无法事先知道对方的用户 ID,可以在远端加入房间后调用。从 onNERtcEngineUserDidJoinWithUserID 中获取对方的 uid,并通过本方法为该用户设置辅流视频画布。
  • 退出房间后,SDK 清除远端用户和画布的的绑定关系,该设置自动失效。
参数
userID远端用户 ID。
canvas视频画布。详细信息请参考 NERtcVideoCanvas。删除画布设置时请传 nil。
返回
操作返回值,成功则返回 0

◆ setVideoCorrectionConfig:

- (int) setVideoCorrectionConfig: (nullable NERtcVideoCorrectionConfiguration *)  config

设置视频图像矫正参数。

自从
V4.6.0
注解
  • 矫正参数结构体的前 4 个参数,代表了待矫正区域相对于屏幕上视图的坐标,每个坐标点的 x 和 y 的取值范围均为 0 ~ 1 的浮点数。
  • 矫正参数结构体的后 3 个参数只有在使用了外部视频渲染功能时才需要传入。
  • config 可以传入 nil,清空之前设置过的矫正参数,将画面恢复至矫正之前的效果。
参数
config视频图像矫正相关参数。详细说明请参考 NERtcVideoCorrectionConfiguration
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setVideoRotationMode:

- (int) setVideoRotationMode: (NERtcVideoRotationMode rotationMode

设置本地视频画面的旋转模式。
该接口用于设置本地视频画面在本地和远端设备上的旋转模式,可以指定本地画面和系统设备的横屏/竖屏模式一致、或者和 App UI的横屏/竖屏模式一致。

注解
  • 请在加入房间之前调用此接口。
  • 无论在哪种旋转模式下,采集端和播放端的旋转模式均保持一致。即本地看到的本地画面和远端看到的本地画面总是同样横屏模式或同样竖屏模式。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.3.0
参数
rotationMode视频旋转模式。详细信息请参考 NERtcVideoRotationMode
返回
操作返回值,成功则返回 0

◆ setVoiceBeautifierPreset:

- (int) setVoiceBeautifierPreset: (NERtcVoiceBeautifierType type

设置 SDK 预设的美声效果。
调用该方法可以为本地发流用户设置 SDK 预设的人声美声效果。

注解
该方法在加入房间前后都能调用,通话结束后重置为默认关闭状态。
参数
type预设的美声效果模式。默认关闭美声效果。详细信息请参考 NERtcVoiceBeautifierType
返回
操作返回值,成功则返回 0

◆ startAudioDump

- (int) startAudioDump

开始记录音频 dump。
音频 dump 可用于分析音频问题。

返回
操作返回值,成功则返回 0

◆ startAudioDumpWithType:

- (int) startAudioDumpWithType: (NERtcAudioDumpType type

开始进行音频 dump。

注解
该方法可在加入房间前后调用。
参数
type音频dump类型。详细信息请参考 NERtcAudioDumpType
返回
操作返回值,成功则返回 0

◆ startAudioMixingWithOption:

- (int) startAudioMixingWithOption: (NERtcCreateAudioMixingOption *)  option

开始播放音乐文件。
该方法指定本地或在线音频文件来和录音设备采集的音频流进行混音。

  • 支持的音乐文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件或在线 URL。
  • 播放状态改变时,本地会触发 onAudioMixingStateChanged 回调。
    注解
  • 请在加入房间后调用该方法。
  • 从 V4.3.0 版本开始,若您在通话中途调用此接口播放音乐文件时,手动设置了伴音播放音量或发送音量,则当前通话中再次调用时默认沿用此设置。
  • 在 V4.4.0 版本中,开启或关闭本地音频采集的操作不影响音乐文件在远端的播放,即 enableLocalAudio(NO) 后仍旧可以发送伴音;在其他版本中,必须开启音频采集才能发送伴音。
    参数
    option创建混音任务配置的选项,包括混音任务类型、混音文件全路径或 URL 等。详细信息请参考 NERtcCreateAudioMixingOption
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。详细信息请参考 NERtcAudioMixingErrorCode

◆ startAudioRecording:sampleRate:quality:

- (int) startAudioRecording: (NSString *)  filePath
sampleRate: (int)  sampleRate
quality: (NERtcAudioRecordingQuality quality 

开始客户端录音。
调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。
指定的录音音质不同,录音文件会保存为不同格式:

  • WAV:音质保真度高,文件大。
  • AAC:音质保真度低,文件小。
    注解
  • 请在加入房间(joinchannel)后调用此方法。
  • 客户端只能同时运行一个录音任务,正在录音时,如果重复调用 startAudioRecording,会结束当前录制任务,并重新开始新的录音任务。
  • 当前用户离开房间时,自动停止录音。您也可以在通话中随时调用 stopAudioRecording 手动停止录音。
    参数
    filePath录音文件在本地保存的绝对路径,需要精确到文件名及格式。例如:sdcard/xxx/audio.aac。
    • 请确保指定的路径存在并且可写。
    • 目前仅支持 WAV 或 AAC 文件格式。
    sampleRate录音采样率(Hz),可以设为 16000、32000(默认)、44100 或 48000。
    quality录音音质,只在 AAC 格式下有效。详细信息请参考 NERtcAudioRecordingQuality
    position录音对象。默认为录制房间内所有成员混流后的音频数据。
    cycleTime循环缓存的最大时长跨度。默认为 0,即实时写文件。
    返回
    操作返回值,成功则返回 0

◆ startAudioRecordingWithConfig:

- (int) startAudioRecordingWithConfig: (NERtcAudioRecordingConfiguration *_Nonnull)  config

开始客户端录音。 调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。 指定的录音音质不同,录音文件会保存为不同格式:

  • WAV:音质保真度高,文件大。
  • AAC:音质保真度低,文件小。
    注解
  • 请在加入房间后调用此方法。
  • 客户端只能同时运行一个录音任务,正在录音时,如果重复调用 startAudioRecordingWithConfig,会结束当前录制任务,并重新开始新的录音任务。
  • 当前用户离开房间时,自动停止录音。您也可以在通话中随时调用 stopAudioRecording 手动停止录音。
    自从
    V4.6.0
    参数
    filePath录音文件在本地保存的绝对路径,需要精确到文件名及格式。例如:sdcard/xxx/audio.aac。
    • 请确保指定的路径存在并且可写。
    • 目前仅支持 WAV 或 AAC 文件格式。
    sampleRate录音采样率(Hz),可以设为 16000、32000(默认)、44100 或 48000。
    quality录音音质,只在 AAC 格式下有效。详细信息请参考 NERtcAudioRecordingQuality
    position录音对象。详细信息请参考 NERtcAudioRecordingPosition
    cycleTime循环缓存的最大时长跨度。该参数单位为秒,可以设为 0、10、60、360、900,默认值为 0,即实时写文件。
    返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ startChannelMediaRelay:

- (int) startChannelMediaRelay: (NERtcChannelMediaRelayConfiguration *_Nonnull)  config

开始跨房间媒体流转发。

  • 该方法可用于实现跨房间连麦等场景。支持同时转发到 4 个房间,同一个房间可以有多个转发进来的媒体流。
  • 成功调用该方法后,SDK 会触发 onNERtcEngineChannelMediaRelayStateDidChange 和 onNERtcEngineDidReceiveChannelMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
    注解
  • 请在成功加入房间后调用该方法。调用此方法前需要通过 config 中的 setDestinationInfo 设置目标房间。
  • 该方法仅对直播场景下的主播角色有效。
  • 成功调用该方法后,若您想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态。
  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用方法 updateChannelMediaRelay 更新目标房间信息。
    参数
    config跨房间媒体流转发参数配置信息。详细信息请参考 NERtcChannelMediaRelayConfiguration
    返回
    成功返回0,其他则失败

◆ startLastmileProbeTest:

- (int) startLastmileProbeTest: (NERtcLastmileProbeConfig *_Nullable)  config

开始通话前网络质量探测。
启用该方法后,SDK 会通过回调方式反馈上下行网络的质量状态与质量探测报告,包括带宽、丢包率、网络抖动和往返时延等数据。一般用于通话前的网络质量探测场景,用户加入房间之前可以通过该方法预估音视频通话中本地用户的主观体验和客观网络状态。
相关回调如下:

  • onNERtcEngineLastmileQuality:网络质量状态回调,以打分形式描述上下行网络质量的主观体验。该回调视网络情况在约 5 秒内返回。
  • onNERtcEngineLastmileProbeTestResult:网络质量探测报告回调,报告中通过客观数据反馈上下行网络质量。该回调视网络情况在约 30 秒内返回。
    注解
  • 请在加入房间(joinChannel)前调用此方法。
  • 调用该方法后,在收到 onNERtcEngineLastmileQuality 和 onNERtcEngineLastmileProbeTestResult 回调之前请不要调用其他方法,否则可能会由于 API 操作过于频繁导致此方法无法执行。
    自从
    V4.5.0
    参数
    configLast mile 网络探测配置。
    返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ startPreview

- (int) startPreview

开启视频预览。

  • 该方法用于在进入房间前启动本地视频预览。调用该 API 前,必须调用 setupLocalVideoCanvas 设置视频画布。
  • 启用本地视频预览后,在进入房间前,必须先调用 stopPreview 关闭本地预览。
    注解
    纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
    返回
    操作返回值,成功则返回 0

◆ startScreenCapture:

- (int) startScreenCapture: (NERtcVideoSubStreamEncodeConfiguration *)  config

开启屏幕共享,屏幕共享内容以辅流形式发送。
只能在加入房间后调用。
如果您在加入房间后调用该方法开启辅流,调用成功后,远端触发 onNERtcEngineUserSubStreamDidStartWithUserID 回调。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
config本地辅流发送配置,详细信息请参考 NERtcVideoSubStreamEncodeConfiguration
返回
操作返回值,成功则返回 0

◆ stopAllEffects

- (int) stopAllEffects

停止播放所有音效文件。

注解
请在加入房间后调用该方法。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopAudioDump

- (int) stopAudioDump

结束记录音频 dump。

返回
操作返回值,成功则返回 0

◆ stopAudioMixing

- (int) stopAudioMixing

停止播放音乐文件及混音。
该方法停止播放伴奏。请在房间内调用该方法。

返回
操作返回值,成功则返回 0

◆ stopAudioRecording

- (int) stopAudioRecording

停止客户端录音。
本端离开房间时自动停止录音,您也可以在通话中随时调用 stopAudioRecording 手动停止录音。

注解
该接口需要在 leaveChannel 之前调用。
返回
操作返回值,成功则返回 0

◆ stopChannelMediaRelay

- (int) stopChannelMediaRelay

停止跨房间媒体流转发。
主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay 方法,此时主播会退出所有目标房间。

  • 成功调用该方法后,SDK 会触发 onNERtcEngineChannelMediaRelayStateDidChange 回调。如果报告 NERtcChannelMediaRelayStateIdle,则表示已停止转发媒体流。
  • 如果该方法调用不成功,SDK 会触发 onNERtcEngineChannelMediaRelayStateDidChange 回调,并报告状态码 NERtcChannelMediaRelayStateFailure。
    返回
    成功返回0,其他则失败

◆ stopEffectWitdId:

- (int) stopEffectWitdId: (uint32_t)  effectId

停止播放指定音效文件。

注解
请在加入房间后调用该方法。
参数
effectId指定音效的 ID。每个音效均有唯一的 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopLastmileProbeTest

- (int) stopLastmileProbeTest

停止通话前网络质量探测。

自从
V4.5.0
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ stopPreview

- (int) stopPreview

停止视频预览。

注解

  • 该方法需要在加入房间前调用。
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
操作返回值,成功则返回 0

◆ stopScreenCapture

- (int) stopScreenCapture

关闭辅流形式的屏幕共享。
如果您在加入房间后调用该方法关闭辅流,调用成功后,远端触发 onNERtcEngineUserSubStreamDidStop 回调。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
操作返回值,成功则返回 0

◆ subscribeAllRemoteAudio:

- (int) subscribeAllRemoteAudio: (BOOL)  subscribe

取消或恢复订阅所有远端用户音频流。

注解
  • 加入房间时,默认订阅所有远端用户的音频,即 setParameters 接口的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true,只有在该参数设置为 false 时,本接口的调用才生效。
  • 该方法加入房间前后都可调用。设置 subscribeAllRemoteAudio 的参数为 YES 后,对后续加入的用户同样生效。
参数
subscribe是否取消订阅所有远端用户的音频流。
返回
操作返回值,成功则返回 0

◆ subscribeRemoteAudio:forUserID:

- (int) subscribeRemoteAudio: (BOOL)  subscribe
forUserID: (uint64_t)  userID 

取消或恢复订阅指定远端用户音频流。
加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。

注解
该方法需要在加入房间后调用。
参数
subscribe是否订阅指定音频流。
userID指定远端用户的 ID。
返回
  • 0: 方法调用成功。
  • 30005: 状态异常,可能是自动订阅打开,导致该接口无效。
  • 其他: 方法调用失败。

◆ subscribeRemoteSubStreamVideo:forUserID:

- (int) subscribeRemoteSubStreamVideo: (BOOL)  subscribe
forUserID: (uint64_t)  userID 

订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据。

注解
  • 纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
  • 只能在加入房间后调用。
参数
subscribe是否订阅远端的屏幕共享辅流视频。
userID远端用户 ID。
返回
操作返回值,成功则返回 0

◆ subscribeRemoteVideo:forUserID:streamType:

- (int) subscribeRemoteVideo: (BOOL)  subscribe
forUserID: (uint64_t)  userID
streamType: (NERtcRemoteVideoStreamType streamType 

订阅或取消订阅指定远端用户的视频流。

注解
  • 该方法需要在加入房间后调用。
  • 用户加入房间之后,默认不订阅远端用户的视频流。如果希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频流。
参数
subscribe是否取消订阅本地视频流。
  • YES:(默认)订阅指定视频流。
  • NO:不订阅指定视频流。
userID指定用户的用户 ID。
streamType订阅的视频流类型,详细信息请参考 NERtcRemoteVideoStreamType
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ takeLocalSnapshot:callback:

- (int) takeLocalSnapshot: (NERtcStreamChannelType streamType
callback: (NERtcTakeSnapshotCallback callback 

本地视频画面截图。
调用 takeLocalSnapshot 截取本地主流或本地辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的回调返回截图画面的数据。

注解

  • 本地主流截图,需要在 startPreview 或者 enableLocalVideo 并 joinChannel 成功之后调用。
  • 本地辅流截图,需要在 joinChannel 并 startScreenCapture 之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
参数
streamType截图的视频流类型。支持设置为主流或辅流。
callback截图回调。
注解
纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
操作返回值,成功则返回

◆ takeRemoteSnapshot:forUserID:callback:

- (int) takeRemoteSnapshot: (NERtcStreamChannelType streamType
forUserID: (uint64_t)  userID
callback: (NERtcTakeSnapshotCallback callback 

远端视频画面截图。
调用 takeRemoteSnapshot 截取指定 uid 远端主流和远端辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的回调返回截图画面的数据。

注解

  • takeRemoteSnapshot 需要在收到 onUserVideoStart 与 onNERtcEngineUserSubStreamDidStartWithUserID 回调之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
参数
userID远端用户 ID。
streamType截图的视频流类型。支持设置为主流或辅流。
callback截图回调。
注解
纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
返回
操作返回值,成功则返回 0

◆ updateChannelMediaRelay:

- (int) updateChannelMediaRelay: (NERtcChannelMediaRelayConfiguration *_Nonnull)  config

更新媒体流转发的目标房间。
成功开始跨房间转发媒体流后,如果你希望将流转发到多个目标房间,或退出当前的转发房间,可以调用该方法。

  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用此方法。
  • 成功调用此方法后,SDK 会触发 onNERtcEngineChannelMediaRelayStateDidChange 回调。如果报告 NERtcChannelMediaRelayStateRunning,则表示已成功转发媒体流。
    注解
  • 请在加入房间并成功调用 startChannelMediaRelay 开始跨房间媒体流转发后,调用此方法。调用此方法前需要通过 config 中的 setDestinationInfo 设置目标房间。
  • 跨房间媒体流转发最多支持 4 个目标房间,您可以在调用该方法之前,通过 NERtcChannelMediaRelayConfiguration 中的 removeDestinationInfoForChannelName 方法移除不需要的房间,再添加新的目标房间。
    参数
    config跨房间媒体流转发参数配置信息。详细信息请参考 NERtcChannelMediaRelayConfiguration
    返回
    成功返回0,其他则失败

◆ updateLiveStreamTask:compeltion:

- (int) updateLiveStreamTask: (NERtcLiveStreamTaskInfo *)  taskInfo
compeltion: (NERtcLiveStreamCompletion completion 

更新房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
参数
taskInfo推流任务信息,详细信息请参考 NERtcLiveStreamTaskInfo
completion操作结果回调,方法调用成功后会触发对应回调。详细信息请参考 NERtcLiveStreamCompletion
返回
操作返回值,成功则返回 0

◆ uploadSdkInfo

- (int) uploadSdkInfo

上传 SDK 信息。
上传的信息包括 log 和 Audio dump 等文件。

注解
只能在加入房间后调用。
返回
操作返回值,成功则返回 0

该协议的文档由以下文件生成: