NERtc Windows SDK
Public Member Functions | List of all members
nertc::IRtcEngineEx Class Referenceabstract

#include <nertc_engine_ex.h>

Inheritance diagram for nertc::IRtcEngineEx:
nertc::IRtcEngine

Public Member Functions

virtual NERtcConnectionStateType getConnectionState ()=0
 
virtual int muteLocalAudioStream (bool mute)=0
 
virtual int setAudioProfile (NERtcAudioProfileType profile, NERtcAudioScenarioType scenario)=0
 
virtual int setLocalVoiceEqualizationPreset (NERtcVoiceEqualizationType type)=0
 
virtual int setLocalVoiceEqualizations (float *band_gain)=0
 
virtual int setLocalVoiceReverbPreset (NERtcVoiceReverbType type)=0
 
virtual int setLocalVoiceChangerPreset (NERtcVoiceChangerType type)=0
 
virtual int subscribeRemoteAudioStream (uid_t uid, bool subscribe)=0
 
virtual int setVideoConfig (const NERtcVideoConfig &config)=0
 
virtual int enableDualStreamMode (bool enable)=0
 
virtual int setupLocalSubStreamVideoCanvas (NERtcVideoCanvas *canvas)=0
 
virtual int setLocalRenderMode (NERtcVideoScalingMode scaling_mode)=0
 
virtual int setLocalSubStreamRenderMode (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 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 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 startSystemAudioLoopbackCapture ()=0
 
virtual int stopSystemAudioLoopbackCapture ()=0
 
virtual int setSystemAudioLoopbackCaptureVolume (uint32_t 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 (void *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 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, NERtcStreamChannelType type)=0
 
virtual int sendSEIMsg (const char *data, int length)=0
 
- Public Member Functions inherited from nertc::IRtcEngine
virtual int initialize (const NERtcEngineContext &context)=0
 
virtual void release (bool sync=false)=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 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
 

Detailed Description

RtcEngine 类提供了供 App 调用的主要接口方法。

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

Member Function Documentation

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

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

Parameters
[in]info直播任务信息。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::enableAudioVolumeIndication ( bool  enable,
uint64_t  interval 
)
pure virtual

启用说话者音量提示。该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。

启用该方法后,无论频道内是否有人说话,都会在 onRemoteAudioVolumeIndication 回调中按设置的间隔时间返回音量提示。

Parameters
enable是否启用说话者音量提示。
interval指定音量提示的时间间隔,单位为毫秒。必须设置为 100 毫秒的整数倍值。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::enableDualStreamMode ( bool  enable)
pure virtual

设置视频双流发送。

Note
调用该方法控制是否支持发送双流,只对摄像头数据生效,自定义输入、取屏等无效。设置后,会在摄像头重启后生效。
Parameters
[in]enable
  • true: 双流发送(默认)
  • false: 只发送一个流
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::enableEarback ( bool  enabled,
uint32_t  volume 
)
pure virtual

开启或关闭耳返。

请在频道内调用该方法。

Parameters
[in]enabled开启或关闭。
[in]volume耳返音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::getAudioMixingCurrentPosition ( uint64_t *  position)
pure virtual

获取音乐文件的播放进度。

该方法获取当前伴奏播放进度,单位为毫秒。请在频道内调用该方法。

Parameters
[out]position伴奏播放进度,单位为毫秒。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::getAudioMixingDuration ( uint64_t *  duration)
pure virtual

获取伴奏时长。

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

Parameters
[out]duration伴奏时长,单位为毫秒。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::getAudioMixingPlaybackVolume ( uint32_t *  volume)
pure virtual

获取伴奏播放音量。

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

Parameters
[out]volume伴奏播放音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::getAudioMixingSendVolume ( uint32_t *  volume)
pure virtual

获取伴奏发送音量。

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

Parameters
[out]volume伴奏发送音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual NERtcConnectionStateType nertc::IRtcEngineEx::getConnectionState ( )
pure virtual

Gets the connection state of the SDK.

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

获取音效播放音量。

该方法获取音效的播放音量大小。请在频道内调用该方法。

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[out]volume音效播放音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::getEffectSendVolume ( uint32_t  effect_id,
uint32_t *  volume 
)
pure virtual

获取音效发送音量。

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

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[out]volume音效发送音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual const char* nertc::IRtcEngineEx::getErrorDescription ( int  error_code)
pure virtual

获取错误描述。

Parameters
[in]error_codeNERtcErrorCode 。来自 onError 提供的错误码。
Returns
详细错误码描述
virtual const char* nertc::IRtcEngineEx::getVersion ( int *  build)
pure virtual

查询 SDK 版本号。

Parameters
[out]build编译号。
Returns
当前的 SDK 版本号,格式为字符串,如1.0.0.
virtual int nertc::IRtcEngineEx::muteLocalAudioStream ( bool  mute)
pure virtual

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

Note
  • 该方法不影响录音状态,因为并没有禁用录音设备。
  • 静音状态会在通话结束后被重置为非静音
Parameters
[in]mute静音/取消静音:
  • true: 静音本地音频
  • false: 取消静音本地音频(默认)
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::muteLocalVideoStream ( bool  mute)
pure virtual

开关本地视频发送。

Note
  • 调用该方法禁视频流时,SDK 不再发送本地视频流,但摄像头仍然处于工作状态。 相比于 enableLocalVideo (false) 用于控制本地视频流发送的方法,该方法响应速度更快。 该方法不影响本地视频流获取,没有禁用摄像头。
  • mute状态会在通话结束后被重置为非mute
Parameters
[in]mute
  • true: 不发送本地视频流
  • false: 发送本地视频流(默认)
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pauseAllEffects ( )
pure virtual

暂停所有音效文件播放。

请在频道内调用该方法。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pauseAudioMixing ( )
pure virtual

暂停播放伴奏。

该方法暂停播放伴奏。请在频道内调用该方法。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pauseEffect ( uint32_t  effect_id)
pure virtual

暂停音效文件播放。

请在频道内调用该方法。

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pauseScreenCapture ( )
pure virtual

暂停屏幕共享。

Returns
  • 0: 方法调用成功
  • 其他: 方法调用失败
virtual int nertc::IRtcEngineEx::playEffect ( uint32_t  effect_id,
NERtcCreateAudioEffectOption option 
)
pure virtual

播放指定音效文件。

你可以多次调用该方法,通过传入不同的音效文件的 effect_id 和 option ,同时播放多个音效文件,实现音效叠加。为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。成功调用该方法后,如果播放结束,本地会触发 onAudioEffectFinished 回调。

Note
请在频道内调用该方法,如果在频道外调用该方法可能会出现问题。
Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[in]option创建音效任务配置的选项,包括混音任务类型、混音文件全路径或URL等。支持的音频格式包括: AAC、MP3 和 WAVE。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pullExternalAudioFrame ( void *  data,
int  len 
)
pure virtual

获取外部音频渲染数据

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

Note
  • pullExternalAudioFrame 中数据长度不能超过 7680字节。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频渲染设备关闭后不再生效,此时会返回空数据。例如通话结束、通话前扬声器设备测试关闭等情况下,该设置不再生效。
Parameters
[out]data数据指针,SDK内部会将数据拷贝到data中。
[in]len需要的数据长度,数据长度不能超过7680。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pushExternalAudioFrame ( NERtcAudioFrame frame)
pure virtual

推送外部音频数据输入

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

Note
  • pushExternalAudioFrame 中数据长度不能超过 7680字节。
  • 数据帧时长建议匹配 10ms 周期。
  • 该方法在音频输入设备关闭后不再生效。例如关闭本地音频、通话结束、通话前麦克风设备测试关闭等情况下,该设置不再生效。
Parameters
[in]frame桢数据,数据长度不能超过7680:
  • 外部输入数据帧,数据时长和调用周期时长一致。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::pushExternalVideoFrame ( NERtcVideoFrame frame)
pure virtual

推送外部视频源数据输入

该方法将数据帧设置给内部引擎。

Note
该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。
Parameters
[in]frame视频桢数据:
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::removeLiveStreamTask ( const char *  task_id)
pure virtual

删除房间推流任务。通话中有效。

Parameters
[in]task_id直播任务id
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::resumeAllEffects ( )
pure virtual

恢复播放所有音效文件。

请在频道内调用该方法。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::resumeAudioMixing ( )
pure virtual

恢复播放伴奏。

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

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::resumeEffect ( uint32_t  effect_id)
pure virtual

恢复播放指定音效文件。

请在频道内调用该方法。

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::resumeScreenCapture ( )
pure virtual

恢复屏幕共享。

Returns
  • 0: 方法调用成功
  • 其他: 方法调用失败
virtual int nertc::IRtcEngineEx::sendSEIMsg ( const char *  data,
int  length,
NERtcStreamChannelType  type 
)
pure virtual

将小数据量的自定义数据嵌入视频帧中

Note
本接口有以下限制:
  • 纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频SDK
  • sei 的发送的最大数据长度为 4k,若发送大量数据,会导致视频码率增大,可能导致视频画质下降甚至卡顿
  • sei 发送的频率,最高为视频发送的帧率,建议不超过 10 次/秒
  • sei 数据不一定立刻发出去,最快在下一帧视频数帧之后发送,最慢在接下来的 5 帧视频帧之后发送
  • sei 数据有可能由于弱网信息而丢失,所以建议多次发送来保证接收端收到的概率
  • 需要使用哪个通道发送sei时,需要提前把对应的数据流通道开启
Parameters
data自定义数据
length自定义数据长度,最大值 4k
typesei使用的流通道类型
Returns
操作返回值,成功则返回 0
  • 成功: 成功进入待发送队列,会在最近的视频帧之后发送该数据
  • 失败: 数据被限制发送,可能发送的频率太高,队列已经满了,或者数据大小超过最大值 4k
virtual int nertc::IRtcEngineEx::sendSEIMsg ( const char *  data,
int  length 
)
pure virtual

将小数据量的自定义数据嵌入视频帧中

Note
本接口有以下限制:
  • 纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频SDK
  • sei 的发送的最大数据长度为 4k,若发送大量数据,会导致视频码率增大,可能导致视频画质下降甚至卡顿
  • sei 发送的频率,最高为视频发送的帧率,建议不超过 10 次/秒
  • sei 数据不一定立刻发出去,最快在下一帧视频数帧之后发送,最慢在接下来的 5 帧视频帧之后发送
  • sei 数据有可能由于弱网信息而丢失,所以建议多次发送来保证接收端收到的概率
  • 需要使用哪个通道发送sei时,需要提前把对应的数据流通道开启
Parameters
data自定义数据
length自定义数据长度,最大值 4k
Note
纯音频SDK禁用该接口,如需使用请前往云信官网下载并替换成视频SDK
Returns
操作返回值,成功则返回 0
  • 成功: 成功进入待发送队列,会在最近的视频帧之后发送该数据
  • 失败: 数据被限制发送,可能发送的频率太高,队列已经满了,或者数据大小超过最大值 4k
virtual int nertc::IRtcEngineEx::setAudioFrameObserver ( INERtcAudioFrameObserver observer)
pure virtual

注册语音观测器对象。joinChannel 前/后都允许更改设置。

该方法用于注册语音观测器对象,即注册回调。当需要引擎给出 onAudioFrameDidRecordonAudioFrameWillPlayback 回调时,需要使用该方法注册回调。

Parameters
observer接口对象实例。如果传入 NULL,则取消注册,同时会清理NERtcAudioFrameRequestFormat相关设置。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setAudioMixingPlaybackVolume ( uint32_t  volume)
pure virtual

调节伴奏播放音量。

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

Parameters
[in]volume伴奏音量范围为 0~100。默认 100 为原始文件音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setAudioMixingPosition ( uint64_t  seek_position)
pure virtual

设置音乐文件的播放位置。

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

Parameters
[in]seek_position进度条位置,单位为毫秒。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setAudioMixingSendVolume ( uint32_t  volume)
pure virtual

调节伴奏发送音量。

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

Parameters
[in]volume伴奏音量范围为 0~100。默认 100 为原始文件音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setAudioProfile ( NERtcAudioProfileType  profile,
NERtcAudioScenarioType  scenario 
)
pure virtual

设置音频编码属性。

Note
Parameters
[in]profile设置采样率,码率,编码模式和声道数: NERtcAudioProfileType.
[in]scenario设置音频应用场景: NERtcAudioScenarioType.
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setEarbackVolume ( uint32_t  volume)
pure virtual

设置耳返音量。

请在频道内调用该方法。

Parameters
[in]volume耳返音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setEffectPlaybackVolume ( uint32_t  effect_id,
uint32_t  volume 
)
pure virtual

调节音效播放音量。

该方法调节音效的播放音量大小。请在频道内调用该方法。

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[in]volume音效音量范围为 0~100。默认 100 为原始文件音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setEffectSendVolume ( uint32_t  effect_id,
uint32_t  volume 
)
pure virtual

调节音效发送音量。

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

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
[in]volume音效音量范围为 0~100。默认 100 为原始文件音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setExternalAudioRender ( bool  enabled,
int  sample_rate,
int  channels 
)
pure virtual

开启或关闭外部音频数据渲染

启用外部音频数据渲染功能,并设计采集参数。默认不启用该功能。 加入通话前调用该接口,当该方法调用成功后,音频播放设备选择和异常重启失效。 调用成功后可以使用 pullExternalAudioFrame 接口获取音频 PCM 数据。

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

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

启用外部音频数据输入功能,并设计采集参数。默认不启用该功能。 加入通话前调用该接口,当该方法调用成功后,音频输入设备选择和异常重启失效。 调用成功后可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。

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

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

该方法启用外部视频数据输入功能。并且需要通过IVideoDeviceManager::setDevice 设置kNERtcExternalVideoDeviceID为外部视频输入源ID

Note
该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
Parameters
[in]enabled是否外部视频源数据输入:
  • true: 开启外部视频源数据输入;
  • false: 关闭外部视频源数据输入 (默认)。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalRenderMode ( NERtcVideoScalingMode  scaling_mode)
pure virtual

设置本地视图显示模式。

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

Note
在打开屏幕共享前必须设置本地辅流画布。
Parameters
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalSubStreamRenderMode ( NERtcVideoScalingMode  scaling_mode)
pure virtual

设置本地辅流视图显示模式。

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

Note
必须先通过 setupLocalSubStreamVideoCanvas 设置本地辅流画布。
Parameters
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalVideoMirrorMode ( NERtcVideoMirrorMode  mirror_mode)
pure virtual

设置本地视频镜像模式。

该方法设置本地视频镜像模式。 App 可以多次调用此方法更改镜像模式。

Parameters
[in]mirror_mode视频镜像模式: NERtcVideoMirrorMode
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalVoiceChangerPreset ( NERtcVoiceChangerType  type)
pure virtual

设置预设的变声模式

Note
通话结束后重置为默认关闭
Parameters
[in]type预设置的变声模式值
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalVoiceEqualizationPreset ( NERtcVoiceEqualizationType  type)
pure virtual

设置预设的EQ模式

Note
Parameters
[in]type预设置的EQ模式值
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalVoiceEqualizations ( float *  band_gain)
pure virtual

设置自定义的EQ

Note
  • 调用后之前 setLocalVoiceEqualizationPreset 设置内容无效
  • 每个 band 的增益,数组大小为10,[0-9]分别代表 10 个频带。
  • 对应的中心频率是 [31,63,125,250,500,1k,2k,4k,8k,16k] Hz 单位是 dB,每一个值的范围是 [-15,15],默认值为 0
  • 通话结束后重置为默认关闭
Parameters
[in]band_gainfloat[10]
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setLocalVoiceReverbPreset ( NERtcVoiceReverbType  type)
pure virtual

设置预设的混响模式

Note
通话结束后重置为默认关闭
Parameters
[in]type预设置的混响模式值
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setMixedAudioFrameParameters ( int  sample_rate)
pure virtual

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

Note
  • joinChannel 前/后都允许更改设置。
  • 目前只支持设置采样率。
  • 未设置该接口,回调中采样率以sdk默认值返回。
Parameters
sample_rate指定 onMixedAudioFrame 中返回数据的采样率。仅支持 8000, 16000, 32000, 44100或48000。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setParameters ( const char *  parameters)
pure virtual

通过 JSON 配置 SDK 提供技术预览或特别定制功能。以标准化方式公开 JSON 选项。

Parameters
[in]parametersJSON 字符串形式的参数
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setPlaybackAudioFrameParameters ( NERtcAudioFrameRequestFormat format)
pure virtual

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

Note
  • joinChannel 前/后都允许更改设置。
  • 取消监听,重置为空。
Parameters
format指定 onAudioFrameWillPlayback 中返回数据的采样率和数据的通道数。允许传入 NULL,默认为 NULL。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setRecordingAudioFrameParameters ( NERtcAudioFrameRequestFormat format)
pure virtual

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

Note
  • joinChannel 前/后都允许更改设置。
  • 取消监听,重置为空。
Parameters
format指定 onAudioFrameDidRecord 中返回数据的采样率和数据的通道数。允许传入 NULL,默认为 NULL。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setRemoteRenderMode ( uid_t  uid,
NERtcVideoScalingMode  scaling_mode 
)
pure virtual

设置远端视图显示模式。

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

Parameters
[in]uid远端用户 ID。
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setRemoteSubSteamRenderMode ( uid_t  uid,
NERtcVideoScalingMode  scaling_mode 
)
pure virtual

设置远端辅流视图显示模式。

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

Parameters
[in]uid远端用户 ID。
[in]scaling_mode视频显示模式: NERtcVideoScalingMode
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setStatsObserver ( IRtcMediaStatsObserver observer)
pure virtual

注册统计信息观测器。

Parameters
[in]observer统计信息观测器
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setSystemAudioLoopbackCaptureVolume ( uint32_t  volume)
pure virtual

设置声音共享音量。只支持windows

请在频道内调用该方法。

Parameters
[in]volume音效音量范围为 0~100。默认 100 为原始音量。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setupLocalSubStreamVideoCanvas ( NERtcVideoCanvas canvas)
pure virtual

设置本地辅流视图。

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

Parameters
[in]canvas视频画布信息
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setupRemoteSubStreamVideoCanvas ( uid_t  uid,
NERtcVideoCanvas canvas 
)
pure virtual

设置远端用户辅流视图。

该方法绑定远端用户和辅流显示视图,即设定 uid 指定的用户用哪个视图显示。调用该接口时需要指定远端视频的 uid,一般可以在用户加入后设置好。

Note
  • 如果 App 不能事先知道对方的 uid,可以在 APP 收到 onUserJoined 事件时设置。
  • 退出频道后,SDK 会把远端用户的绑定关系清除掉。
Parameters
[in]uid远端用户 ID。
[in]canvas视频画布信息
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::setVideoConfig ( const NERtcVideoConfig config)
pure virtual

设置视频配置。

该方法设置视频配置。每个属性对应一套视频参数,如分辨率等,会在摄像头重启后生效。 所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率的最大值时,会取最接近最大值的那个值。

Parameters
[in]config视频配置: NERtcVideoConfig
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startAudioDump ( )
pure virtual

开启音频dump。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startAudioMixing ( NERtcCreateAudioMixingOption option)
pure virtual

开始播放伴奏。

指定本地或在线音频文件来和录音设备采集的音频流进行混音。成功调用该方法后,如果播放状态改变,本地会触发 onAudioMixingStateChanged 回调。

Note
请在频道内调用该方法,如果在频道外调用该方法可能会出现问题。
Parameters
[in]option创建混音任务配置的选项,包括混音任务类型、混音文件全路径或URL等。支持的音频格式包括: AAC、MP3 和 WAVE。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startScreenCaptureByDisplayId ( unsigned int  display_id,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

通过屏幕 ID 共享屏幕。共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 ID。

Note
  • 该方法仅适用于 macOS。
  • 该方法打开视频辅流。
Parameters
display_id指定待共享的屏幕 ID。开发者需要通过该参数指定你要共享的那个屏幕。
region_rect(可选)指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。
capture_params屏幕共享的编码参数配置。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startScreenCaptureByScreenRect ( const NERtcRectangle screen_rect,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

通过指定区域共享屏幕。共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。

Note
  • 该方法仅适用于 Windows。
  • 该方法打开视频辅流。
Parameters
screen_rect指定待共享的屏幕相对于虚拟屏的位置。
region_rect(可选) 指定待共享区域相对于整个屏幕屏幕的位置。如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0, 则共享整个屏幕。
capture_params屏幕共享的编码参数配置。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startScreenCaptureByWindowId ( void *  window_id,
const NERtcRectangle region_rect,
const NERtcScreenCaptureParameters capture_params 
)
pure virtual

通过窗口 ID 共享窗口。共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 ID。

Note
  • 该方法仅适用于 Windows 和 macOS。
  • 该方法打开视频辅流。
Parameters
window_id指定待共享的窗口 ID。
region_rect(可选)指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。
capture_params屏幕共享的编码参数配置。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startSystemAudioLoopbackCapture ( )
pure virtual

开启声音共享。只支持windows

请在频道内调用该方法,该方法会捕获系统声音发送,开启本地语音后工作;

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::startVideoPreview ( )
pure virtual

开启视频预览。

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

Note
启用了本地视频预览后,在进入频道前,本地预览必须先关闭,需要调用 stopVideoPreview
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopAllEffects ( )
pure virtual

停止播放所有音效文件。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopAudioDump ( )
pure virtual

结束音频dump。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopAudioMixing ( )
pure virtual

停止播放伴奏。

该方法停止播放伴奏。请在频道内调用该方法。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopEffect ( uint32_t  effect_id)
pure virtual

停止播放指定音效文件。

请在频道内调用该方法。

Parameters
[in]effect_id指定音效的 ID。每个音效均有唯一的 ID。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopScreenCapture ( )
pure virtual

停止屏幕共享。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopSystemAudioLoopbackCapture ( )
pure virtual

关闭声音共享。只支持windows

请在频道内调用该方法,通话结束后自动关闭

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::stopVideoPreview ( )
pure virtual

停止视频预览。

Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::subscribeRemoteAudioStream ( uid_t  uid,
bool  subscribe 
)
pure virtual

订阅/取消订阅指定音频流。

Note
当kNERtcKeyAutoSubscribeAudio默认打开时,用户不能手动修改音频订阅状态
Parameters
[in]uid指定用户的 ID
[in]subscribe
  • true: 订阅指定音频流(默认);
  • false: 取消订阅指定音频流。
Returns
  • 0: 方法调用成功;
  • 30005: 状态异常,可能是自动订阅打开,导致该接口无效
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::subscribeRemoteVideoSubStream ( uid_t  uid,
bool  subscribe 
)
pure virtual

订阅 / 取消订阅指定远端用户的视频辅流。对方打开视频后需要主动订阅

Note
  • 必须在远端加入房间后调用。
  • 必须先设置远端辅流画布。
Parameters
[in]uid指定用户的用户 ID。
[in]subscribe
  • true: 订阅指定远端用户的视频流;
  • false: 取消订阅指定远端用户的视频流。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::updateLiveStreamTask ( const NERtcLiveStreamTaskInfo info)
pure virtual

更新修改房间推流任务。通话中有效。

Parameters
[in]info直播任务信息。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngineEx::updateScreenCaptureRegion ( const NERtcRectangle region_rect)
pure virtual

在共享屏幕或窗口时,更新共享的区域。

Parameters
region_rect(可选)指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual void nertc::IRtcEngineEx::uploadSdkInfo ( )
pure virtual

上传SDK 信息(如log文件和Audio dump文件)。

Returns
void

The documentation for this class was generated from the following file: