NERtc Windows SDK  V4.6.0
Public 成员函数 | 所有成员列表
nertc::IRtcEngineEx类 参考abstract

#include <nertc_engine_ex.h>

类 nertc::IRtcEngineEx 继承关系图:
nertc::IRtcEngine

Public 成员函数

virtual IRtcChannelcreateChannel (const char *channel_name)=0
 
virtual NERtcConnectionStateType getConnectionState ()=0
 
virtual int muteLocalAudioStream (bool mute)=0
 
virtual int setAudioProfile (NERtcAudioProfileType profile, NERtcAudioScenarioType scenario)=0
 
virtual int setAudioEffectPreset (NERtcVoiceChangerType type)=0
 
virtual int setVoiceBeautifierPreset (NERtcVoiceBeautifierType type)=0
 
virtual int setLocalVoicePitch (double pitch)=0
 
virtual int setLocalVoiceEqualization (NERtcVoiceEqualizationBand band_frequency, int band_gain)=0
 
virtual int subscribeRemoteAudioStream (uid_t uid, bool subscribe)=0
 
virtual int setCameraCaptureConfig (const NERtcCameraCaptureConfig &config)=0
 
virtual int subscribeAllRemoteAudioStream (bool subscribe)=0
 
virtual int setVideoConfig (const NERtcVideoConfig &config)=0
 
virtual int enableDualStreamMode (bool enable)=0
 
virtual int setupLocalSubStreamVideoCanvas (NERtcVideoCanvas *canvas)=0
 
virtual int setLocalSubStreamRenderMode (NERtcVideoScalingMode scaling_mode)=0
 
virtual int setLocalRenderMode (NERtcVideoScalingMode scaling_mode)=0
 
virtual int setLocalVideoMirrorMode (NERtcVideoMirrorMode mirror_mode)=0
 
virtual int setRemoteRenderMode (uid_t uid, NERtcVideoScalingMode scaling_mode)=0
 
virtual int setupRemoteSubStreamVideoCanvas (uid_t uid, NERtcVideoCanvas *canvas)=0
 
virtual int subscribeRemoteVideoSubStream (uid_t uid, bool subscribe)=0
 
virtual int setRemoteSubSteamRenderMode (uid_t uid, NERtcVideoScalingMode scaling_mode)=0
 
virtual int startVideoPreview ()=0
 
virtual int stopVideoPreview ()=0
 
virtual int muteLocalVideoStream (bool mute)=0
 
virtual int setLocalMediaPriority (NERtcMediaPriorityType priority, bool is_preemptive)=0
 
virtual int setParameters (const char *parameters)=0
 
virtual int setRecordingAudioFrameParameters (NERtcAudioFrameRequestFormat *format)=0
 
virtual int setPlaybackAudioFrameParameters (NERtcAudioFrameRequestFormat *format)=0
 
virtual int setMixedAudioFrameParameters (int sample_rate)=0
 
virtual int setAudioFrameObserver (INERtcAudioFrameObserver *observer)=0
 
virtual int startAudioDump ()=0
 
virtual int startAudioDump (NERtcAudioDumpType type)=0
 
virtual int stopAudioDump ()=0
 
virtual int startAudioMixing (NERtcCreateAudioMixingOption *option)=0
 
virtual int stopAudioMixing ()=0
 
virtual int pauseAudioMixing ()=0
 
virtual int resumeAudioMixing ()=0
 
virtual int setAudioMixingSendVolume (uint32_t volume)=0
 
virtual int getAudioMixingSendVolume (uint32_t *volume)=0
 
virtual int setAudioMixingPlaybackVolume (uint32_t volume)=0
 
virtual int getAudioMixingPlaybackVolume (uint32_t *volume)=0
 
virtual int getAudioMixingDuration (uint64_t *duration)=0
 
virtual int getAudioMixingCurrentPosition (uint64_t *position)=0
 
virtual int setAudioMixingPosition (uint64_t seek_position)=0
 
virtual int playEffect (uint32_t effect_id, NERtcCreateAudioEffectOption *option)=0
 
virtual int stopEffect (uint32_t effect_id)=0
 
virtual int stopAllEffects ()=0
 
virtual int pauseEffect (uint32_t effect_id)=0
 
virtual int resumeEffect (uint32_t effect_id)=0
 
virtual int pauseAllEffects ()=0
 
virtual int resumeAllEffects ()=0
 
virtual int setEffectSendVolume (uint32_t effect_id, uint32_t volume)=0
 
virtual int getEffectSendVolume (uint32_t effect_id, uint32_t *volume)=0
 
virtual int setEffectPlaybackVolume (uint32_t effect_id, uint32_t volume)=0
 
virtual int getEffectPlaybackVolume (uint32_t effect_id, uint32_t *volume)=0
 
virtual int enableLoopbackRecording (bool enabled, const char *device_name)=0
 
virtual int adjustLoopbackRecordingSignalVolume (int volume)=0
 
virtual int enableEarback (bool enabled, uint32_t volume)=0
 
virtual int setEarbackVolume (uint32_t volume)=0
 
virtual int setStatsObserver (IRtcMediaStatsObserver *observer)=0
 
virtual int enableAudioVolumeIndication (bool enable, uint64_t interval)=0
 
virtual int startScreenCaptureByScreenRect (const NERtcRectangle &screen_rect, const NERtcRectangle &region_rect, const NERtcScreenCaptureParameters &capture_params)=0
 
virtual int startScreenCaptureByDisplayId (unsigned int display_id, const NERtcRectangle &region_rect, const NERtcScreenCaptureParameters &capture_params)=0
 
virtual int startScreenCaptureByWindowId (source_id_t window_id, const NERtcRectangle &region_rect, const NERtcScreenCaptureParameters &capture_params)=0
 
virtual int updateScreenCaptureRegion (const NERtcRectangle &region_rect)=0
 
virtual int stopScreenCapture ()=0
 
virtual int pauseScreenCapture ()=0
 
virtual int resumeScreenCapture ()=0
 
virtual int setExcludeWindowList (source_id_t *window_list, int count)=0
 
virtual int setExternalVideoSource (bool enabled)=0
 
virtual int pushExternalVideoFrame (NERtcVideoFrame *frame)=0
 
virtual int setExternalAudioSource (bool enabled, int sample_rate, int channels)=0
 
virtual int pushExternalAudioFrame (NERtcAudioFrame *frame)=0
 
virtual int setExternalAudioRender (bool enabled, int sample_rate, int channels)=0
 
virtual int pullExternalAudioFrame (void *data, int len)=0
 
virtual const char * getVersion (int *build)=0
 
virtual const char * getErrorDescription (int error_code)=0
 
virtual void uploadSdkInfo ()=0
 
virtual int addLiveStreamTask (const NERtcLiveStreamTaskInfo &info)=0
 
virtual int updateLiveStreamTask (const NERtcLiveStreamTaskInfo &info)=0
 
virtual int removeLiveStreamTask (const char *task_id)=0
 
virtual int sendSEIMsg (const char *data, int length, NERtcVideoStreamType type)=0
 
virtual int sendSEIMsg (const char *data, int length)=0
 
virtual int setLocalCanvasWatermarkConfigs (NERtcVideoStreamType type, NERtcCanvasWatermarkConfig &config)=0
 
virtual int setRemoteCanvasWatermarkConfigs (uid_t uid, NERtcVideoStreamType type, NERtcCanvasWatermarkConfig &config)=0
 
virtual int takeLocalSnapshot (NERtcVideoStreamType stream_type, NERtcTakeSnapshotCallback *callback)=0
 
virtual int takeRemoteSnapshot (uid_t uid, NERtcVideoStreamType stream_type, NERtcTakeSnapshotCallback *callback)=0
 
virtual int startAudioRecording (const char *file_path, int sample_rate, NERtcAudioRecordingQuality quality)=0
 
virtual int startAudioRecordingWithConfig (const NERtcAudioRecordingConfiguration &config)=0
 
virtual int stopAudioRecording ()=0
 
virtual int adjustUserPlaybackSignalVolume (uid_t uid, int volume)=0
 
virtual int startChannelMediaRelay (NERtcChannelMediaRelayConfiguration *config)=0
 
virtual int updateChannelMediaRelay (NERtcChannelMediaRelayConfiguration *config)=0
 
virtual int stopChannelMediaRelay ()=0
 
virtual int setLocalPublishFallbackOption (NERtcStreamFallbackOption option)=0
 
virtual int setRemoteSubscribeFallbackOption (NERtcStreamFallbackOption option)=0
 
virtual int enableSuperResolution (bool enable)=0
 
virtual int enableEncryption (bool enable, NERtcEncryptionConfig config)=0
 
virtual int startLastmileProbeTest (const NERtcLastmileProbeConfig &config)=0
 
virtual int stopLastmileProbeTest ()=0
 
virtual int setRemoteHighPriorityAudioStream (bool enabled, uid_t uid)=0
 
virtual int checkNECastAudioDriver ()=0
 
virtual int enableFaceEnhance (bool enable)=0
 
virtual int enableVirtualBackground (bool enabled, VirtualBackgroundSource backgroundSource)=0
 
virtual int setCloudProxy (int proxyType)=0
 
- Public 成员函数 继承自 nertc::IRtcEngine
virtual int initialize (const NERtcEngineContext &context)=0
 
virtual void release (bool sync=true)=0
 
virtual int setClientRole (NERtcClientRole role)=0
 
virtual int setChannelProfile (NERtcChannelProfileType profile)=0
 
virtual int joinChannel (const char *token, const char *channel_name, uid_t uid)=0
 
virtual int switchChannel (const char *token, const char *channel_name)=0
 
virtual int leaveChannel ()=0
 
virtual int queryInterface (NERtcInterfaceIdType iid, void **inter)=0
 
virtual int enableLocalAudio (bool enabled)=0
 
virtual int setupLocalVideoCanvas (NERtcVideoCanvas *canvas)=0
 
virtual int setupRemoteVideoCanvas (uid_t uid, NERtcVideoCanvas *canvas)=0
 
virtual int enableLocalVideo (bool enabled)=0
 
virtual int subscribeRemoteVideoStream (uid_t uid, NERtcRemoteVideoStreamType type, bool subscribe)=0
 

详细描述

RtcEngine 类提供了供 App 调用的主要接口方法。
IRtcEngineEx 是 NERTC SDK 的扩展接口类。创建一个 IRtcEngine 对象并调用这个对象的方法可以激活 NERTC SDK 的通信功能。

成员函数说明

◆ addLiveStreamTask()

virtual int nertc::IRtcEngineEx::addLiveStreamTask ( const NERtcLiveStreamTaskInfo info)
pure virtual

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

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
  • 该方法每次只能增加一路旁路推流地址。如需推送多路流,则需多次调用该方法。同一个音视频房间(即同一个 channelid)可以创建 3 个不同的推流任务。
  • 成功添加推流任务后,当前用户会收到该直播流的相关状态通知。
参数
[in]info直播任务信息。详细信息请参考 NERtcLiveStreamTaskInfo
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ adjustLoopbackRecordingSignalVolume()

virtual int nertc::IRtcEngineEx::adjustLoopbackRecordingSignalVolume ( int  volume)
pure virtual

调节声卡采集信号音量。

自从
V4.4.0 调用 enableLoopbackRecording 开启声卡采集后,你可以调用该方法调节声卡采集的信号音量。
参数
[in]volume声卡采集信号音量。取值范围为 [0,100]。默认值为 100,表示原始音量。
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ adjustUserPlaybackSignalVolume()

virtual int nertc::IRtcEngineEx::adjustUserPlaybackSignalVolume ( uid_t  uid,
int  volume 
)
pure virtual

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

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

◆ checkNECastAudioDriver()

virtual int nertc::IRtcEngineEx::checkNECastAudioDriver ( )
pure virtual

检测虚拟声卡是否安装(仅适用于 Mac 系统)。 该接口会检测电脑是否安装最新版本的虚拟声卡。如果未安装,并且应用中已集成NERTCPrivilegedTask库,该接口会弹出安装虚拟声卡对话框,方便用户安装。

自从
V4.6.0
返回
  • 0: 电脑未安装网易虚拟声卡或虚拟声卡不是最新版本
  • 1: 电脑已安装最新版本的网易虚拟声卡

◆ createChannel()

virtual IRtcChannel* nertc::IRtcEngineEx::createChannel ( const char *  channel_name)
pure virtual

创建一个 IRtcChannel 对象

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

◆ enableAudioVolumeIndication()

virtual int nertc::IRtcEngineEx::enableAudioVolumeIndication ( bool  enable,
uint64_t  interval 
)
pure virtual

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

参数
enable是否启用说话者音量提示。
interval指定音量提示的时间间隔,单位为毫秒。必须设置为 100 毫秒的整数倍值。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ enableDualStreamMode()

virtual int nertc::IRtcEngineEx::enableDualStreamMode ( bool  enable)
pure virtual

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

注解
  • 该方法只对摄像头数据生效,自定义输入、屏幕共享等视频流无效。
  • 该方法在加入房间前后都能调用。设置后,会在摄像头重启后生效。
参数
[in]enable指定是否开启双流模式。
  • true: (默认)开启双流模式。
  • false: 关闭双流模式。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ enableEarback()

virtual int nertc::IRtcEngineEx::enableEarback ( bool  enabled,
uint32_t  volume 
)
pure virtual

开启或关闭耳返。

注解
  • 请在房间内调用该方法。
  • 开启耳返功能后,必须连接上耳机或耳麦,才能正常使用耳返功能。建议通过 onAudioDeviceStateChangedonAudioDefaultDeviceChanged 监听播放设备的变化,当监听到播放设备切换为耳机时才开启耳返。
参数
[in]enabled开启或关闭。
[in]volume耳返音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ enableEncryption()

virtual int nertc::IRtcEngineEx::enableEncryption ( bool  enable,
NERtcEncryptionConfig  config 
)
pure virtual

开启或关闭媒体流加密。

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

◆ enableFaceEnhance()

virtual int nertc::IRtcEngineEx::enableFaceEnhance ( bool  enable)
pure virtual

启用或停止人脸增强。

自从
V4.6.0
注解
参数
enable是否启用人脸增强。默认为关闭状态。
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ enableLoopbackRecording()

virtual int nertc::IRtcEngineEx::enableLoopbackRecording ( bool  enabled,
const char *  device_name 
)
pure virtual

开启或关闭声卡采集。

自从
V4.4.0 启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
注解
  • 该方法仅适用于 macOS 和 Windows 平台。
  • macOS 系统默认声卡不支持采集功能,如需开启此功能需要 App 自己启用一个虚拟声卡,并将该虚拟声卡的名字作为 device_name 传入 SDK。 网易云信建议使用 Soundflower 作为虚拟声卡,以获得更好的音频效果。
  • 该方法在加入房间前后都能调用。
参数
[in]enabled是否开启声卡采集功能。
  • true: 开启声卡采集。
  • false: (默认)关闭声卡采集。
[in]device_name声卡的设备名。默认设为 NULL,即使用当前声卡采集。
该参数仅适用于 macOS 平台。
如果用户使用虚拟声卡,如 “Soundflower”,可以将虚拟声卡名称 “Soundflower” 作为参数,SDK 会找到对应的虚拟声卡设备,并开始采集。
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ enableSuperResolution()

virtual int nertc::IRtcEngineEx::enableSuperResolution ( bool  enable)
pure virtual

启用或停止 AI 超分。

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

◆ enableVirtualBackground()

virtual int nertc::IRtcEngineEx::enableVirtualBackground ( bool  enabled,
VirtualBackgroundSource  backgroundSource 
)
pure virtual

启用/禁用虚拟背景。 启用虚拟背景功能后,您可以使用自定义背景图片替换本地用户的原始背景图片。 替换后,频道内所有用户都可以看到自定义背景图片。

自从
V4.6.0
注解
  • 您可以通过 onVirtualBackgroundSourceEnabled 回调查看虚拟背景是否开启成功或出错原因。
  • 建议您使用配备 i5 CPU 及更高性能的设备。
  • 建议您在满足以下条件的场景中使用该功能:
  • 采用高清摄像设备,环境光线均匀。
  • 捕获的视频图像整洁,用户肖像半长且基本无遮挡,并且背景是与用户衣服颜色不同的单一颜色。
  • 虚拟背景功能不支持 Texture 格式的视频或通过 Push 方法从自定义视频捕获中获取的视频。
参数
backgroundSource自定义背景图片。请参阅 VirtualBackgroundSource
返回
  • 0:方法调用成功。
  • < 0: 方法调用失败。

◆ getAudioMixingCurrentPosition()

virtual int nertc::IRtcEngineEx::getAudioMixingCurrentPosition ( uint64_t *  position)
pure virtual

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

参数
[out]position伴奏播放进度,单位为毫秒。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getAudioMixingDuration()

virtual int nertc::IRtcEngineEx::getAudioMixingDuration ( uint64_t *  duration)
pure virtual

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

参数
[out]duration伴奏时长,单位为毫秒。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getAudioMixingPlaybackVolume()

virtual int nertc::IRtcEngineEx::getAudioMixingPlaybackVolume ( uint32_t *  volume)
pure virtual

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

参数
[out]volume伴奏播放音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getAudioMixingSendVolume()

virtual int nertc::IRtcEngineEx::getAudioMixingSendVolume ( uint32_t *  volume)
pure virtual

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

参数
[out]volume伴奏发送音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getConnectionState()

virtual NERtcConnectionStateType nertc::IRtcEngineEx::getConnectionState ( )
pure virtual

获取当前房间连接状态。

返回
房间连接状态。::NERtcConnectionStateType.

◆ getEffectPlaybackVolume()

virtual int nertc::IRtcEngineEx::getEffectPlaybackVolume ( uint32_t  effect_id,
uint32_t *  volume 
)
pure virtual

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

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[out]volume音效播放音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getEffectSendVolume()

virtual int nertc::IRtcEngineEx::getEffectSendVolume ( uint32_t  effect_id,
uint32_t *  volume 
)
pure virtual

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

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[out]volume音效发送音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getErrorDescription()

virtual const char* nertc::IRtcEngineEx::getErrorDescription ( int  error_code)
pure virtual

查看指定错误码的错误描述。

注解
目前该方法无效,只返回空值。请在 onError 中查看返回的错误码及具体的错误描述。
参数
[in]error_codeNERtcErrorCode
返回
详细错误码描述

◆ getVersion()

virtual const char* nertc::IRtcEngineEx::getVersion ( int *  build)
pure virtual

查询 SDK 版本号。 该方法在加入房间前后都能调用。

参数
[out]build编译号。
返回
当前的 SDK 版本号,格式为字符串,如1.0.0.

◆ muteLocalAudioStream()

virtual int nertc::IRtcEngineEx::muteLocalAudioStream ( bool  mute)
pure virtual

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

注解
  • 该方法不影响录音状态,因为并没有禁用录音设备。
  • 静音状态会在通话结束后被重置为非静音。
  • 成功调用该方法后,房间内其他用户会收到 onUserAudioMute 回调。
参数
[in]mute静音/取消静音:
  • true: 静音本地音频
  • false: 取消静音本地音频(默认)
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ muteLocalVideoStream()

virtual int nertc::IRtcEngineEx::muteLocalVideoStream ( bool  mute)
pure virtual

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

注解
  • 调用该方法禁视频流时,SDK 不再发送本地视频流,但摄像头仍然处于工作状态。
  • 该方法在加入房间前后均可调用。
  • 若调用该方法取消发布本地视频流,通话结束后会被重置为默认状态,即默认发布本地视频流。
  • 该方法与 enableLocalVideo (false) 的区别在于, enableLocalVideo (false) 会关闭本地摄像头设备,muteLocalVideoStream 不影响本地视频流采集,不禁用摄像头,且响应速度更快。
  • 成功调用该方法后,远端会触发 onUserVideoMute 回调。
自从
V4.5.0
参数
[in]enabled是否启用本地视频采集。
  • true: (默认)开启本地视频采集。
  • false: 关闭本地摄像头设备。关闭后,远端用户会接收不到本地用户的视频流;但本地用户依然可以接收远端用户的视频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pauseAllEffects()

virtual int nertc::IRtcEngineEx::pauseAllEffects ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pauseAudioMixing()

virtual int nertc::IRtcEngineEx::pauseAudioMixing ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pauseEffect()

virtual int nertc::IRtcEngineEx::pauseEffect ( uint32_t  effect_id)
pure virtual

暂停音效文件播放。
请在房间内调用该方法。

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ pauseScreenCapture()

virtual int nertc::IRtcEngineEx::pauseScreenCapture ( )
pure virtual

暂停屏幕共享。

  • 暂停屏幕共享后,共享区域内会持续显示暂停前的最后一帧画面,直至通过 resumeScreenCapture 恢复屏幕共享。
  • 在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。
    返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ playEffect()

virtual int nertc::IRtcEngineEx::playEffect ( uint32_t  effect_id,
NERtcCreateAudioEffectOption option 
)
pure virtual

播放指定音效文件。

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

◆ pullExternalAudioFrame()

virtual int nertc::IRtcEngineEx::pullExternalAudioFrame ( void *  data,
int  len 
)
pure virtual

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

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

◆ pushExternalAudioFrame()

virtual int nertc::IRtcEngineEx::pushExternalAudioFrame ( NERtcAudioFrame frame)
pure virtual

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

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

◆ pushExternalVideoFrame()

virtual int nertc::IRtcEngineEx::pushExternalVideoFrame ( NERtcVideoFrame frame)
pure virtual

推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。 请确保在你调用本方法前已调用 setExternalVideoSource,并将参数设为 true,否则调用本方法后会一直报错。

注解
该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。
参数
[in]frame外部视频帧数据。详细信息请参考 NERtcVideoFrame
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ removeLiveStreamTask()

virtual int nertc::IRtcEngineEx::removeLiveStreamTask ( const char *  task_id)
pure virtual

删除房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
  • 通话结束,房间成员全部离开房间后,推流任务会自动删除。如果房间内还有用户存在,则需要创建推流任务的用户删除推流任务。
参数
[in]task_id直播任务 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ resumeAllEffects()

virtual int nertc::IRtcEngineEx::resumeAllEffects ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ resumeAudioMixing()

virtual int nertc::IRtcEngineEx::resumeAudioMixing ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ resumeEffect()

virtual int nertc::IRtcEngineEx::resumeEffect ( uint32_t  effect_id)
pure virtual

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

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ resumeScreenCapture()

virtual int nertc::IRtcEngineEx::resumeScreenCapture ( )
pure virtual

恢复屏幕共享。
在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。

返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ sendSEIMsg() [1/2]

virtual int nertc::IRtcEngineEx::sendSEIMsg ( const char *  data,
int  length 
)
pure virtual

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

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

◆ sendSEIMsg() [2/2]

virtual int nertc::IRtcEngineEx::sendSEIMsg ( const char *  data,
int  length,
NERtcVideoStreamType  type 
)
pure virtual

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

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

◆ setAudioEffectPreset()

virtual int nertc::IRtcEngineEx::setAudioEffectPreset ( NERtcVoiceChangerType  type)
pure virtual

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

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

◆ setAudioFrameObserver()

virtual int nertc::IRtcEngineEx::setAudioFrameObserver ( INERtcAudioFrameObserver observer)
pure virtual

注册语音观测器对象。
该方法用于设置音频采集和播放PCM回调,可用于声音处理等操作。当需要引擎给出 onAudioFrameDidRecordonAudioFrameWillPlayback 回调时,需要使用该方法注册回调。

参数
observer接口对象实例。如果传入 NULL,则取消注册,同时会清理 NERtcAudioFrameRequestFormat 相关设置。详细信息请参考 INERtcAudioFrameObserver。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setAudioMixingPlaybackVolume()

virtual int nertc::IRtcEngineEx::setAudioMixingPlaybackVolume ( uint32_t  volume)
pure virtual

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

参数
[in]volume伴奏音量范围为 0~100。默认 100 为原始文件音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setAudioMixingPosition()

virtual int nertc::IRtcEngineEx::setAudioMixingPosition ( uint64_t  seek_position)
pure virtual

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

参数
[in]seek_position进度条位置,单位为毫秒。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setAudioMixingSendVolume()

virtual int nertc::IRtcEngineEx::setAudioMixingSendVolume ( uint32_t  volume)
pure virtual

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

参数
[in]volume伴奏发送音量。取值范围为 0~100。默认 100 为原始文件音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setAudioProfile()

virtual int nertc::IRtcEngineEx::setAudioProfile ( NERtcAudioProfileType  profile,
NERtcAudioScenarioType  scenario 
)
pure virtual

设置音频编码属性。

注解
  • 该方法需要在 joinChannel 之前设置好, joinChannel 之后设置不生效。
  • 音乐场景下,建议将 profile 设置为 kNERtcAudioProfileHighQuality。
参数
[in]profile设置采样率,码率,编码模式和声道数: NERtcAudioProfileType
[in]scenario设置音频应用场景: NERtcAudioScenarioType
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setCameraCaptureConfig()

virtual int nertc::IRtcEngineEx::setCameraCaptureConfig ( const NERtcCameraCaptureConfig config)
pure virtual

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

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

◆ setCloudProxy()

virtual int nertc::IRtcEngineEx::setCloudProxy ( int  proxyType)
pure virtual

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

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

◆ setEarbackVolume()

virtual int nertc::IRtcEngineEx::setEarbackVolume ( uint32_t  volume)
pure virtual

设置耳返音量。 请在房间内调用该方法。

参数
[in]volume耳返音量。可设置为 0~100,默认为 100。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setEffectPlaybackVolume()

virtual int nertc::IRtcEngineEx::setEffectPlaybackVolume ( uint32_t  effect_id,
uint32_t  volume 
)
pure virtual

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

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[in]volume音效播放音量。范围为0~100,默认为100。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setEffectSendVolume()

virtual int nertc::IRtcEngineEx::setEffectSendVolume ( uint32_t  effect_id,
uint32_t  volume 
)
pure virtual

调节音效发送音量。 该方法调节音效的发送音量大小。请在房间内调用该方法。

参数
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[in]volume音效音量范围为 0~100。默认 100 为原始文件音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setExcludeWindowList()

virtual int nertc::IRtcEngineEx::setExcludeWindowList ( source_id_t window_list,
int  count 
)
pure virtual

设置共享整个屏幕或屏幕指定区域时,需要屏蔽的窗口列表。
开启屏幕共享时,可以通过 NERtcScreenCaptureParameters 设置需要屏蔽的窗口列表;开发者可以在开启屏幕共享后,通过此方法动态调整需要屏蔽的窗口列表。被屏蔽的窗口不会显示在屏幕共享区域中。

注解
  • 在 Windows 平台中,该接口在屏幕共享过程中可动态调用;在 macOS 平台中,该接口自 V4.6.0 开始支持在屏幕共享过程中动态调用。
  • 在 Windows 平台中,某些窗口在被屏蔽之后,如果被置于图层最上层,此窗口图像可能会黑屏。此时会触发 onScreenCaptureStatus.kScreenCaptureStatusCovered 回调,建议应用层在触发此回调时提醒用户将待分享的窗口置于最上层。
自从
V4.2.0
参数
window_list需要屏蔽的窗口 ID 列表。
count需屏蔽的窗口的数量。
返回
  • 0: 方法调用成功
  • 其他: 方法调用失败

◆ setExternalAudioRender()

virtual int nertc::IRtcEngineEx::setExternalAudioRender ( bool  enabled,
int  sample_rate,
int  channels 
)
pure virtual

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

注解
  • 请在加入房间前调用该方法。
  • 该方法设置内部引擎为启用状态,启动时将用虚拟设备代替扬声器工作,在leaveChannel后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭外部音频数据渲染功能。
  • 启用外部音频渲染功能后,SDK 内部实现部分扬声器由外部输入数据代替,扬声器相关的设置会失败或不在通话中生效。例如进行 loopback 检测时,需要由外部渲染播放。
参数
[in]enabled是否外部数据输出:
  • true: 开启外部数据渲染;
  • false: 关闭外部数据渲染 (默认)。
[in]sample_rate数据采样率,后续数据按该格式返回。 注意:调用接口关闭功能时可传入任意合法值,此时设置不会生效。
[in]channels数据声道数,后续数据按该格式返回。 注意:调用接口关闭功能时可传入任意合法值,此时设置不会生效。 可设置为:
  • 1:单声道。
  • 2:双声道。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setExternalAudioSource()

virtual int nertc::IRtcEngineEx::setExternalAudioSource ( bool  enabled,
int  sample_rate,
int  channels 
)
pure virtual

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

注解
  • 请在加入房间前调用该方法。
  • 该方法设置内部引擎为启用状态,启动时将用虚拟设备代替麦克风工作,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭外部音频数据输入功能。
  • 启用外部音频数据输入功能后,SDK 内部实现部分麦克风由外部输入数据代替,麦克风相关的设置会失败或不在通话中生效。例如进行 loopback 检测时,会听到输入的外部数据。
参数
[in]enabled是否外部数据输入:
  • true: 开启外部数据输入;
  • false: 关闭外部数据输入 (默认)。
[in]sample_rate数据采样率,后续数据传入需要按该格式传入。 注意:调用接口关闭功能时可传入任意合法值,此时设置不会生效。
[in]channels数据声道数,后续数据传入需要按该格式传入。注意:调用接口关闭功能时可传入任意合法值,此时设置不会生效。 可设置为:
  • 1:单声道。 2:双声道。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setExternalVideoSource()

virtual int nertc::IRtcEngineEx::setExternalVideoSource ( bool  enabled)
pure virtual

开启或关闭外部视频源数据输入。
通过该方法启用外部视频数据输入功能时,需要通过 IVideoDeviceManager::setDevice 设置 kNERtcExternalVideoDeviceID 为外部视频输入源 ID。

注解
该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
参数
[in]enabled是否启用外部视频源数据输入。
  • true: 开启外部视频源数据输入;
  • false: 关闭外部视频源数据输入 (默认)。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalCanvasWatermarkConfigs()

virtual int nertc::IRtcEngineEx::setLocalCanvasWatermarkConfigs ( NERtcVideoStreamType  type,
NERtcCanvasWatermarkConfig config 
)
pure virtual

添加本地视频画布水印。

注解
  • setLocalCanvasWatermarkConfigs 方法作用于本地视频画布,不影响视频流。画布被移除时,水印也会自动移除。
  • 设置水印之前,需要先通过画布相关方法设置画布。
  • macOS 暂不支持水印相关方法。
参数
type视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType
config画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。 详细信息请参考 NERtcCanvasWatermarkConfig
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalMediaPriority()

virtual int nertc::IRtcEngineEx::setLocalMediaPriority ( NERtcMediaPriorityType  priority,
bool  is_preemptive 
)
pure virtual

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

注解
  • 请在加入房间(joinChannel)前调用此方法。
  • 快速切换房间 (switchChannel) 后,媒体优先级会恢复为默认值,即普通优先级。
  • 一个音视频房间中只有一个高优先级的用户。建议房间中只有一位用户调用 setLocalMediaPriority 将本端媒体流设为高优先级,否则需要开启抢占模式,保证本地用户的高优先级设置生效。
参数
priority本地用户的媒体流优先级,默认为 kNERtcMediaPriorityNormal 。详细信息请参考 NERtcMediaPriorityType
is_preemptive是否开启抢占模式。默认为 false,即不开启。
  • 抢占模式开启后,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
  • 抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalPublishFallbackOption()

virtual int nertc::IRtcEngineEx::setLocalPublishFallbackOption ( NERtcStreamFallbackOption  option)
pure virtual

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

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

◆ setLocalRenderMode()

virtual int nertc::IRtcEngineEx::setLocalRenderMode ( NERtcVideoScalingMode  scaling_mode)
pure virtual

设置本地视图显示模式。 该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。

注解
在打开屏幕共享前必须设置本地辅流画布。
参数
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalSubStreamRenderMode()

virtual int nertc::IRtcEngineEx::setLocalSubStreamRenderMode ( NERtcVideoScalingMode  scaling_mode)
pure virtual

设置本端的屏幕共享辅流视频显示模式。
该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。

注解
调用此方法前,必须先通过 setupLocalSubStreamVideoCanvas 设置本地辅流画布。
参数
[in]scaling_mode视频显示模式。
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ setLocalVideoMirrorMode()

virtual int nertc::IRtcEngineEx::setLocalVideoMirrorMode ( NERtcVideoMirrorMode  mirror_mode)
pure virtual

设置本地视频镜像模式。 该方法用于设置本地视频是否开启镜像模式,即画面是否左右翻转。 本地的视频镜像模式仅影响本地用户所见,不影响远端用户所见。App 可以多次调用此方法更改镜像模式。

参数
[in]mirror_mode视频镜像模式。详细信息请参考 NERtcVideoMirrorMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setLocalVoiceEqualization()

virtual int nertc::IRtcEngineEx::setLocalVoiceEqualization ( NERtcVoiceEqualizationBand  band_frequency,
int  band_gain 
)
pure virtual

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

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

◆ setLocalVoicePitch()

virtual int nertc::IRtcEngineEx::setLocalVoicePitch ( double  pitch)
pure virtual

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

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

◆ setMixedAudioFrameParameters()

virtual int nertc::IRtcEngineEx::setMixedAudioFrameParameters ( int  sample_rate)
pure virtual

设置录制和播放声音混音后的采样率。
该方法设置 onMixedAudioFrame 回调的声音格式。

注解
  • 该方法在加入房间前后均可设置或修改。
  • 目前只支持设置采样率。
  • 未调用该接口设置数据格式时,回调中的采样率返回 SDK 默认值。
参数
sample_rate指定 onMixedAudioFrame 中返回数据的采样率。仅支持 8000, 16000, 32000, 44100 或 48000。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setParameters()

virtual int nertc::IRtcEngineEx::setParameters ( const char *  parameters)
pure virtual

设置音视频通话的相关参数。通过 JSON 配置 SDK 提供技术预览或特别定制功能。以标准化方式公开 JSON 选项。

参数
[in]parameters音视频通话的相关参数。JSON 字符串形式。参数 key,请参阅 nertc_engine_defines.h 中的定义。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setPlaybackAudioFrameParameters()

virtual int nertc::IRtcEngineEx::setPlaybackAudioFrameParameters ( NERtcAudioFrameRequestFormat format)
pure virtual

设置播放的声音格式。
该方法设置 onAudioFrameWillPlayback 回调的播放声音格式。

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

◆ setRecordingAudioFrameParameters()

virtual int nertc::IRtcEngineEx::setRecordingAudioFrameParameters ( NERtcAudioFrameRequestFormat format)
pure virtual

设置采集的音频格式。
该方法设置 onAudioFrameDidRecord 回调的录制声音格式。

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

◆ setRemoteCanvasWatermarkConfigs()

virtual int nertc::IRtcEngineEx::setRemoteCanvasWatermarkConfigs ( uid_t  uid,
NERtcVideoStreamType  type,
NERtcCanvasWatermarkConfig config 
)
pure virtual

添加远端视频画布水印。

注解
  • setRemoteCanvasWatermarkConfigs 方法作用于远端视频画布,不影响视频流。画布被移除时,水印也会自动移除。
  • 设置水印之前,需要先通过画布相关方法设置画布。
  • macOS 暂不支持水印相关方法。
参数
uid远端用户 ID。
type视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType
config画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。 详细信息请参考 NERtcCanvasWatermarkConfig
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setRemoteHighPriorityAudioStream()

virtual int nertc::IRtcEngineEx::setRemoteHighPriorityAudioStream ( bool  enabled,
uid_t  uid 
)
pure virtual

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

注解
  • 该接口需要通话中设置,并需要自动订阅打开(默认打开)。
  • 该接口只能设置一个用户的优先级,后设置的会覆盖之前的设置。
  • 该接口通话结束后,优先级设置重置。
参数
[in]enabled是否设置音频订阅优先级。
  • true:设置音频订阅优先级。
  • false:取消设置音频订阅优先级。
[in]uid用户 ID
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ setRemoteRenderMode()

virtual int nertc::IRtcEngineEx::setRemoteRenderMode ( uid_t  uid,
NERtcVideoScalingMode  scaling_mode 
)
pure virtual

设置远端视图显示模式。 该方法设置远端视图显示模式。App 可以多次调用此方法更改显示模式。

参数
[in]uid远端用户 ID。
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setRemoteSubscribeFallbackOption()

virtual int nertc::IRtcEngineEx::setRemoteSubscribeFallbackOption ( NERtcStreamFallbackOption  option)
pure virtual

设置弱网条件下订阅的音视频流回退选项。
弱网环境下,订阅的音视频质量会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackVideoStreamLow 或者 kNERtcStreamFallbackAudioOnly 后:

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

◆ setRemoteSubSteamRenderMode()

virtual int nertc::IRtcEngineEx::setRemoteSubSteamRenderMode ( uid_t  uid,
NERtcVideoScalingMode  scaling_mode 
)
pure virtual

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

参数
[in]uid远端用户 ID。
[in]scaling_mode视频显示模式。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setStatsObserver()

virtual int nertc::IRtcEngineEx::setStatsObserver ( IRtcMediaStatsObserver observer)
pure virtual

注册统计信息观测器。

参数
[in]observer统计信息观测器
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setupLocalSubStreamVideoCanvas()

virtual int nertc::IRtcEngineEx::setupLocalSubStreamVideoCanvas ( NERtcVideoCanvas canvas)
pure virtual

设置本地辅流视频画布。

  • 该方法设置本地辅流视频显示信息。App 通过调用此接口绑定本地辅流的显示视窗(view)。
  • 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。
    参数
    [in]canvas视频画布信息。
    返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ setupRemoteSubStreamVideoCanvas()

virtual int nertc::IRtcEngineEx::setupRemoteSubStreamVideoCanvas ( uid_t  uid,
NERtcVideoCanvas canvas 
)
pure virtual

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

注解
  • 如果 App 无法事先知道对方的 uid,可以在 APP 收到 onUserJoined 事件时设置。
  • 退出房间后,SDK 会清除远端用户和画布的的绑定关系,该设置自动失效。
参数
[in]uid远端用户 ID。
[in]canvas视频画布设置
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setVideoConfig()

virtual int nertc::IRtcEngineEx::setVideoConfig ( const NERtcVideoConfig config)
pure virtual

设置本地视频的编码属性。

  • 可以在加入房间前或加入房间后调用此接口。
  • NERtcVideoConfig 中的 max_profile 可以指定预设的 Profile 模式,但是预设模式往往无法满足实际场景需求,网易云信建议您通过 widthheight 进行自定义设置。详细信息请参考设置视频属性
    注解
  • 每个属性对应一套视频参数,例如分辨率、帧率、码率等。 所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率的最大值时,会取最接近最大值的那个值。
  • setVideoConfig 为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。
  • V4.5.0 开始,setVideoConfig 方法实时生效;此前的版本中,setVideoConfig 方法设置成功后,下次开启本端视频时生效。
    参数
    [in]config视频编码属性配置,详细信息请参考 NERtcVideoConfig
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setVoiceBeautifierPreset()

virtual int nertc::IRtcEngineEx::setVoiceBeautifierPreset ( NERtcVoiceBeautifierType  type)
pure virtual

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

注解
通话结束后重置为默认关闭
参数
[in]type预设的美声效果模式。默认关闭美声效果。详细信息请参考 nertc::NERtcVoiceBeautifierType
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startAudioDump()

virtual int nertc::IRtcEngineEx::startAudioDump ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startAudioMixing()

virtual int nertc::IRtcEngineEx::startAudioMixing ( NERtcCreateAudioMixingOption option)
pure virtual

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

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

◆ startAudioRecording()

virtual int nertc::IRtcEngineEx::startAudioRecording ( const char *  file_path,
int  sample_rate,
NERtcAudioRecordingQuality  quality 
)
pure virtual

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

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

◆ startAudioRecordingWithConfig()

virtual int nertc::IRtcEngineEx::startAudioRecordingWithConfig ( const NERtcAudioRecordingConfiguration config)
pure virtual

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

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

◆ startChannelMediaRelay()

virtual int nertc::IRtcEngineEx::startChannelMediaRelay ( NERtcChannelMediaRelayConfiguration config)
pure virtual

开始跨房间媒体流转发。

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

◆ startLastmileProbeTest()

virtual int nertc::IRtcEngineEx::startLastmileProbeTest ( const NERtcLastmileProbeConfig config)
pure virtual

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

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

◆ startScreenCaptureByDisplayId()

virtual int nertc::IRtcEngineEx::startScreenCaptureByDisplayId ( unsigned int  display_id,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

通过指定屏幕 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
此方法调用成功后,远端触发 onUserSubStreamVideoStart 回调。

注解
  • 该方法仅适用于 macOS。Windows 平台请使用方法 startScreenCaptureByScreenRect。
  • 该方法需要在加入房间后设置。
参数
display_id指定待共享的屏幕 ID。开发者需要自行实现枚举屏幕 ID 的方法,并通过该参数指定需要共享的屏幕。
region_rect指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。
capture_params屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startScreenCaptureByScreenRect()

virtual int nertc::IRtcEngineEx::startScreenCaptureByScreenRect ( const NERtcRectangle screen_rect,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

开启屏幕共享,共享范围为指定屏幕的指定区域。
调用该方法时,可以选择共享整个虚拟屏、指定屏幕,或虚拟屏、整个屏幕的某些区域范围。
此方法调用成功后,远端触发 onUserSubStreamVideoStart 和 setExcludeWindowList 回调。

注解
  • 该方法仅适用于 Windows。macOS 平台请使用方法 startScreenCaptureByDisplayId。
  • 该方法需要在加入房间后调用。
参数
screen_rect指定待共享的屏幕相对于虚拟屏的位置。
region_rect指定待共享区域相对于整个屏幕屏幕的位置。如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0, 则共享整个屏幕。
capture_params屏幕共享的编码参数配置。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startScreenCaptureByWindowId()

virtual int nertc::IRtcEngineEx::startScreenCaptureByWindowId ( source_id_t  window_id,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

通过指定窗口 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
调用该方法时需要指定待共享的屏幕 ID,共享该屏幕的整体画面或指定区域。
此方法调用成功后:

  • Windows 平台远端触发 onUserSubStreamVideoStop 和 onScreenCaptureStatus 回调。
  • macOS 平台远端触发 onUserSubStreamVideoStop 回调。
    注解
  • 该方法适用于 Windows 和 macOS。
  • 该方法需要在加入房间后调用。
    参数
    window_id指定待共享的窗口 ID。
    region_rect指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享指定区域中窗口内的内容;如果宽或高为 0,则共享整个窗口。
    capture_params屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startVideoPreview()

virtual int nertc::IRtcEngineEx::startVideoPreview ( )
pure virtual

开启视频预览。
该方法用于在进入房间前启动本地视频预览。调用该 API 前,必须:

  • 调用 setupLocalVideoCanvas 设置预览窗口;
    注解
    启用了本地视频预览后,在进入房间前,本地预览必须先关闭,需要先调用 stopVideoPreview
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopAllEffects()

virtual int nertc::IRtcEngineEx::stopAllEffects ( )
pure virtual

停止播放所有音效文件。

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

◆ stopAudioDump()

virtual int nertc::IRtcEngineEx::stopAudioDump ( )
pure virtual

结束音频dump。

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopAudioMixing()

virtual int nertc::IRtcEngineEx::stopAudioMixing ( )
pure virtual

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

返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopAudioRecording()

virtual int nertc::IRtcEngineEx::stopAudioRecording ( )
pure virtual

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

注解
该接口需要在 leaveChannel 之前调用。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopChannelMediaRelay()

virtual int nertc::IRtcEngineEx::stopChannelMediaRelay ( )
pure virtual

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

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

◆ stopEffect()

virtual int nertc::IRtcEngineEx::stopEffect ( uint32_t  effect_id)
pure virtual

停止播放指定音效文件。

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

◆ stopLastmileProbeTest()

virtual int nertc::IRtcEngineEx::stopLastmileProbeTest ( )
pure virtual

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

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

◆ stopScreenCapture()

virtual int nertc::IRtcEngineEx::stopScreenCapture ( )
pure virtual

停止屏幕共享。
此方法调用成功后:

  • Windows 平台远端触发 onUserSubStreamVideoStop 和 onScreenCaptureStatus 回调。
  • macOS 平台远端触发 onUserSubStreamVideoStop 回调。
    返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopVideoPreview()

virtual int nertc::IRtcEngineEx::stopVideoPreview ( )
pure virtual

停止视频预览。

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

◆ subscribeAllRemoteAudioStream()

virtual int nertc::IRtcEngineEx::subscribeAllRemoteAudioStream ( bool  subscribe)
pure virtual

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

注解
  • 加入房间时,默认订阅所有远端用户的音频,即 setParameters 接口的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true,只有在该参数设置为 false 时,本接口的调用才生效。
  • 该方法加入房间前后都可调用。设置 subscribeAllRemoteAudioStream 的参数为 YES 后,对后续加入的用户同样生效。
自从
V4.5.0
参数
subscribe是否取消订阅所有远端用户的音频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ subscribeRemoteAudioStream()

virtual int nertc::IRtcEngineEx::subscribeRemoteAudioStream ( uid_t  uid,
bool  subscribe 
)
pure virtual

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

注解
当kNERtcKeyAutoSubscribeAudio默认打开时,用户不能手动修改音频订阅状态
参数
[in]uid指定用户的 ID。
[in]subscribe是否订阅远端用户音频流。
  • true: 订阅指定音频流(默认)。
  • false: 取消订阅指定音频流。
返回
  • 0: 方法调用成功。
  • 30005: 状态异常,可能是自动订阅打开,导致该接口无效。
  • 其他: 方法调用失败。

◆ subscribeRemoteVideoSubStream()

virtual int nertc::IRtcEngineEx::subscribeRemoteVideoSubStream ( uid_t  uid,
bool  subscribe 
)
pure virtual

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

注解
  • 必须在远端加入房间后调用。
  • 调用此接口前,必须先通过 setupRemoteSubStreamVideoCanvas 设置远端辅流画布。
参数
[in]uid指定用户的用户 ID。
[in]subscribe
  • true: 订阅指定远端用户的视频流。
  • false: 取消订阅指定远端用户的视频流。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ takeLocalSnapshot()

virtual int nertc::IRtcEngineEx::takeLocalSnapshot ( NERtcVideoStreamType  stream_type,
NERtcTakeSnapshotCallback callback 
)
pure virtual

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

注解
  • 本地主流截图,需要在 startPreview 或者 enableLocalVideo 并 joinChannel 成功之后调用。
  • 本地辅流截图,需要在 startScreenCapture 并 joinChannel 成功之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
参数
stream_type截图的视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType
callback截图回调。详细信息请参考 NERtcTakeSnapshotCallback
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ takeRemoteSnapshot()

virtual int nertc::IRtcEngineEx::takeRemoteSnapshot ( uid_t  uid,
NERtcVideoStreamType  stream_type,
NERtcTakeSnapshotCallback callback 
)
pure virtual

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

注解
  • takeRemoteSnapshot 需要在收到 onUserVideoStart 与 onUserSubStreamVideoStart 回调之后调用。
  • 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
参数
uid远端用户 ID。
stream_type截图的视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType
callback截图回调。详细信息请参考 NERtcTakeSnapshotCallback
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ updateChannelMediaRelay()

virtual int nertc::IRtcEngineEx::updateChannelMediaRelay ( NERtcChannelMediaRelayConfiguration config)
pure virtual

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

  • 成功开始跨房间转发媒体流后,如果您需要修改目标房间,例如添加或删减目标房间等,可以调用此方法。
  • 成功调用该方法后,SDK 会触发 onMediaRelayStateChangeonMediaRelayEvent 回调,并在回调中报告当前的跨房间媒体流转发状态和事件。
    注解
    请在加入房间并成功调用 startChannelMediaRelay 开始跨房间媒体流转发后,调用此方法。调用此方法前需要通过 NERtcChannelMediaRelayConfiguration 中的 dest_infos 设置目标房间。
    自从
    V4.3.0
    参数
    config目标房间配置信息
    返回
    成功返回0,其他则失败

◆ updateLiveStreamTask()

virtual int nertc::IRtcEngineEx::updateLiveStreamTask ( const NERtcLiveStreamTaskInfo info)
pure virtual

更新修改房间推流任务。

注解
  • 该方法仅适用直播场景。
  • 请在房间内调用该方法,该方法在通话中有效。
参数
[in]info直播任务信息。详细信息请参考 NERtcLiveStreamTaskInfo
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ updateScreenCaptureRegion()

virtual int nertc::IRtcEngineEx::updateScreenCaptureRegion ( const NERtcRectangle region_rect)
pure virtual

在共享屏幕或窗口时,更新共享的区域。
在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。

参数
region_rect指定待共享的区域相对于整个窗口或屏幕的位置。如果设置的共享区域超出了边界,则只共享指定区域中,窗口或屏幕内的内容;如果宽或高为 0,则共享整个窗口或屏幕。
返回
  • 0: 方法调用成功。
  • 其他: 方法调用失败。

◆ uploadSdkInfo()

virtual void nertc::IRtcEngineEx::uploadSdkInfo ( )
pure virtual

上传 SDK 信息。
只能在加入房间后调用。
上传的信息包括 log 和 Audio dump 等文件。

返回
void

该类的文档由以下文件生成: