Unreal Engine SDK V5.4.128
载入中...
搜索中...
未找到
nertc::IRtcChannel类 参考abstract

#include <INertcChannel.h>

Public 成员函数

virtual ~IRtcChannel ()
 
virtual void release ()=0
 
virtual const char * getChannelName ()=0
 
virtual int setChannelEventHandler (IRtcChannelEventHandler *handler)=0
 
virtual int joinChannel (const char *token)=0
 
virtual int joinChannel (const char *token, uid_t uid)=0
 
virtual int joinChannel (const char *token, uid_t uid, NERtcJoinChannelOptions channel_options)=0
 
virtual int switchChannel (const char *token, const char *channel_name, const NERtcJoinChannelOptions &channel_options)=0
 
virtual int leaveChannel ()=0
 
virtual int setStatsObserver (IRtcMediaStatsObserver *observer)=0
 
virtual int enableLocalAudio (bool enabled)=0
 
virtual int muteLocalAudioStream (bool mute)=0
 
virtual int setClientRole (NERtcClientRole role)=0
 
virtual NERtcConnectionStateType getConnectionState ()=0
 
virtual int subscribeRemoteAudioStream (uid_t uid, bool subscribe)=0
 
virtual int subscribeAllRemoteAudioStream (bool subscribe)=0
 
virtual int setPublishAudioAllowList (uid_t *uid_array, uint32_t size)=0
 
virtual int setSubscribeAudioAllowList (uid_t *uid_array, uint32_t size)=0
 
virtual int setSubscribeAudioBlockList (uid_t *uid_array, uint32_t size)=0
 
virtual int enableAudioVolumeIndication (bool enable, uint64_t interval, bool enable_vad)=0
 
virtual int setRangeAudioMode (NERtcRangeAudioMode mode)=0
 
virtual int setRangeAudioTeamID (int32_t team_id)=0
 
virtual int setAudioRecvRange (int audible_distance, int conversational_distance, NERtcDistanceRolloffModel roll_off)=0
 
virtual int updateSelfPosition (const NERtcPositionInfo &info)=0
 
virtual int initSpatializer ()=0
 
virtual int enableSpatializer (bool enable)=0
 
virtual int getMicrophoneMode (bool *enabled)=0
 
virtual bool checkMicPermision ()=0
 
virtual bool isInChannel ()=0
 
virtual bool acquireAndroidRecordingPermissions ()=0
 

详细描述

IRtcChannel 类在指定房间中实现实时音视频功能。通过创建多个 IRtcChannel 对象,用户可以同时加入多个房间。

构造及析构函数说明

◆ ~IRtcChannel()

virtual nertc::IRtcChannel::~IRtcChannel ( )
inlinevirtual

成员函数说明

◆ acquireAndroidRecordingPermissions()

virtual bool nertc::IRtcChannel::acquireAndroidRecordingPermissions ( )
pure virtual

安卓平台下请求录音权限、蓝牙权限

◆ checkMicPermision()

virtual bool nertc::IRtcChannel::checkMicPermision ( )
pure virtual

检查平台麦克风权限(移动端)

返回
麦克风权限

◆ enableAudioVolumeIndication()

virtual int nertc::IRtcChannel::enableAudioVolumeIndication ( bool enable,
uint64_t interval,
bool enable_vad )
pure virtual
弃用
这个方法已废弃。 启用说话者音量提示。
通过此接口可以实现允许 SDK 定期向 App 反馈房间内发音频流的用户和瞬时音量最高的远端用户(最多 3 位,包括本端)的音量相关信息,即当前谁在说话以及说话者的音量。
自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于通过发言者的人声相关信息做出 UI 上的音量展示的场景,或根据发言者的音量大小进行视图布局的动态调整。
注解
该方法在 leaveChannel 后设置失效,将恢复至默认。如果您离开房间后重新加入房间,需要重新调用本接口。
参数说明
参数名称 类型 描述
enable bool 是否启用说话者音量提示:
  • true:启用说话者音量提示。
  • false:关闭说话者音量提示。
interval uint64_t 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
示例代码
//设置间隔为500ms的人声音量提示
rtc_engine_->enableAudioVolumeIndication(true, 500);
相关回调
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 onRemoteAudioVolumeIndication 回调。
相关接口
若您希望在返回音量相关信息的同时检测是否有真实人声存在,请调用 enableAudioVolumeIndication 方法。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30003(kNERtcErrInvalidParam):参数错误,比如时间间隔小于 100ms。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎未初始化。

◆ enableLocalAudio()

virtual int nertc::IRtcChannel::enableLocalAudio ( bool enabled)
pure virtual

开启/关闭本地音频采集和发送。
通过本接口可以实现开启或关闭本地语音功能,进行本地音频采集及处理。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 加入房间后,语音功能默认为开启状态。
  • 该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
  • 该方法不影响接收或播放远端音频流,enableLocalAudio(false) 适用于只下行不上行音频流的场景。
  • 该方法会操作音频硬件设备,建议避免频繁开关,否则可能导致设备异常。
参数说明
参数名称 类型 描述
enabled boolean 是否启用本地音频的采集和发送:
  • true:开启本地音频采集。
  • false:关闭本地音频采集。关闭后,远端用户会接收不到本地用户的音频流;但本地用户依然可以接收到远端用户的音频流。

示例代码
//打开音频采集
rtc_channel_->enableLocalAudio(true);
//关闭音频采集
rtc_channel_->enableLocalAudio(false);
相关回调
相关接口
muteLocalAudioStream:两者的差异在于,enableLocalAudio 用于开启本地语音采集及处理,而 muteLocalAudioStream 用于停止或继续发送本地音频流。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):引擎尚未初始化,或者多房间场景下未在本房间操作。

◆ enableSpatializer()

virtual int nertc::IRtcChannel::enableSpatializer ( bool enable)
pure virtual

开启或关闭空间音效

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
开启空间音效后,通话结束时仍保留该开关状态,不重置。
参数
enabled是否打开3D音效算法功能,默认为关闭状态。
  • true: 开启空间音效
  • false: 关闭空间音效
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ getChannelName()

virtual const char * nertc::IRtcChannel::getChannelName ( )
pure virtual

获取当前房间名。

自从
V4.5.0
返回
  • 成功:当前IRtcChannel房间名。
  • 失败:返回空。

◆ getConnectionState()

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

获取当前房间连接状态。

自从
V4.5.0
返回
房间连接状态。#NERtcConnectionStateType.

◆ getMicrophoneMode()

virtual int nertc::IRtcChannel::getMicrophoneMode ( bool * enabled)
pure virtual

获取麦克风开关状态

返回
麦克风打开状态

◆ initSpatializer()

virtual int nertc::IRtcChannel::initSpatializer ( )
pure virtual

初始化引擎3D音效算法

注解
此接口在加入房间前调用,退出房间后不重置
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ isInChannel()

virtual bool nertc::IRtcChannel::isInChannel ( )
pure virtual

检查是否已经在房间内

参数
enabled输出结果,true:在房间内 false:不在房间内
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ joinChannel() [1/3]

virtual int nertc::IRtcChannel::joinChannel ( const char * token)
pure virtual

加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。

自从
V3.5.0
调用时机
请在初始化后调用该方法。
注解
  • 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 加入音视频房间时,如果指定房间尚未创建,云信 服务器内部会自动创建一个同名房间。
  • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 onJoinChannel 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费;若您想取消自动订阅,可以在通话前通过调用 setParameters 方法实现。
  • 网络测速过程中无法加入房间。
  • 若使用了云代理功能,uid 不允许传 0,请用真实的 uid。
参数说明
参数名称 类型 描述
token const char 安全认证签名(NERTC Token),可以设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
示例代码
IRtcChannel *rtc_channel_ = rtc_engine_->createChannel(secondChannel);
rtc_channel_->joinChannel(token);
定义 INertcChannel.h:34
virtual int joinChannel(const char *token)=0
相关接口
  • 您可以调用 leaveChannel 方法离开房间。
  • 直播场景中,观众角色可以通过 switchChannel 接口切换房间。
相关回调
  • 成功调用该方法加入房间后,本地会触发 onJoinChannel 回调,远端会触发 onUserJoined 回调。
  • 在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连,并在自动重连成功后触发 onRejoinChannel 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):重复入会或获取房间信息失败。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ joinChannel() [2/3]

virtual int nertc::IRtcChannel::joinChannel ( const char * token,
uid_t uid )
pure virtual

加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。

自从
V3.5.0
调用时机
请在初始化后调用该方法。
注解
  • 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 加入音视频房间时,如果指定房间尚未创建,云信 服务器内部会自动创建一个同名房间。
  • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 onJoinChannel 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费;若您想取消自动订阅,可以在通话前通过调用 setParameters 方法实现。
  • 网络测速过程中无法加入房间。
  • 若使用了云代理功能,uid 不允许传 0,请用真实的 uid。
参数说明
参数名称 类型 描述
token const char 安全认证签名(NERTC Token),可以设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
uid uid_t user id
示例代码
IRtcChannel *rtc_channel_ = rtc_engine_->createChannel(secondChannel);
rtc_channel_->joinChannel(token, uid);
相关接口
  • 您可以调用 leaveChannel 方法离开房间。
  • 直播场景中,观众角色可以通过 switchChannel 接口切换房间。
相关回调
  • 成功调用该方法加入房间后,本地会触发 onJoinChannel 回调,远端会触发 onUserJoined 回调。
  • 在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连,并在自动重连成功后触发 onRejoinChannel 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):重复入会或获取房间信息失败。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ joinChannel() [3/3]

virtual int nertc::IRtcChannel::joinChannel ( const char * token,
uid_t uid,
NERtcJoinChannelOptions channel_options )
pure virtual

加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。

自从
V3.5.0
调用时机
请在初始化后调用该方法。
注解
  • 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
  • 加入音视频房间时,如果指定房间尚未创建,云信 服务器内部会自动创建一个同名房间。
  • 传参中 uid 可选,若不指定则默认为 0,SDK 会自动分配一个随机 uid,并在 onJoinChannel 回调方法中返回;App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
  • 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费;若您想取消自动订阅,可以在通话前通过调用 setParameters 方法实现。
  • 网络测速过程中无法加入房间。
  • 若使用了云代理功能,uid 不允许传 0,请用真实的 uid。
参数说明
参数名称 类型 描述
token const char 安全认证签名(NERTC Token),可以设置为:
  • null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的 NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
channel_options NERtcJoinChannelOptions 加入房间时设置一些特定的房间参数。默认值为 nil。
uid uid_t user id
示例代码
IRtcChannel *rtc_channel_ = rtc_engine_->createChannel(secondChannel);
NERtcJoinChannelOptions channel_options;
strcpy(channel_options.custom_info, "custom info");
channel_options.permission_key = "permission key";
rtc_channel_->joinChannel(token, uid, channel_options);
定义 NertcEngineDefines.h:7000
char custom_info[kNERtcCustomInfoLength]
定义 NertcEngineDefines.h:7006
char * permission_key
定义 NertcEngineDefines.h:7012
相关接口
  • 您可以调用 leaveChannel 方法离开房间。
  • 直播场景中,观众角色可以通过 switchChannel 接口切换房间。
相关回调
  • 成功调用该方法加入房间后,本地会触发 onJoinChannel 回调,远端会触发 onUserJoined 回调。
  • 在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连,并在自动重连成功后触发 onRejoinChannel 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):重复入会或获取房间信息失败。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化或正在进行网络探测。

◆ leaveChannel()

virtual int nertc::IRtcChannel::leaveChannel ( )
pure virtual

离开音视频房间。
通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。

自从
V3.5.0
调用时机
请在初始化并成功加入房间后调用该方法。
注解
  • 结束通话时必须调用此方法离开房间,否则无法开始下一次通话。
  • 该方法是异步操作,调用返回时并没有真正退出频道。在真正退出房间后,SDK 会触发 onLeaveChannel 回调。
  • 如果在调用 leaveChannel 后立即调用 release 方法,可能会无法正常离开房间;建议您在收到 onLeaveChannel 回调之后再调用 release 方法释放会话相关所有资源。
示例代码
rtc_channel_->leaveChannel();
相关回调
成功调用该方法离开房间后,本地会触发 onLeaveChannel 回调,远端会触发 onUserLeft 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):正在进行网络探测。
    • 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化。
    • 30101(kNERtcErrChannelNotJoined):尚未加入房间。
    • 30102(kNERtcErrChannelRepleatedlyLeave):重复离开房间。
    • 30104(kNERtcErrSessionNotFound):会话未找到。

◆ muteLocalAudioStream()

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

开启或关闭本地音频主流的发送。
该方法用于向网络发送或取消发送本地音频数据,不影响本地音频的采集状态,也不影响接收或播放远端音频流。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
注解
该方法设置内部引擎为启用状态,在 leaveChannel 后恢复至默认(非静音)。
参数说明
参数名称 类型 描述
mute bool 是否关闭本地音频的发送:
  • true:不发送本地音频。
  • false:发送本地音频。
示例代码
//不发送本地音频
rtc_channel_->muteLocalAudioStream(false);
//发送本地音频
rtc_channel_->muteLocalAudioStream(true);
相关回调
若本地用户在说话,成功调用该方法后,房间内其他用户会收到 onUserAudioMute 回调。
相关接口
enableMediaPub:
  • 在需要开启本地音频采集(监测本地用户音量)但不发送音频流的情况下,您也可以调用 enableMeidaPub(false) 方法。
  • 两者的差异在于,muteLocalAudioStream(true) 仍然保持与服务器的音频通道连接,而 enableMediaPub(false) 表示断开此通道,因此若您的实际业务场景为多人并发的大房间,建议您调用 enableMediaPub 方法。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):引擎未初始化。
    • 30107(kNERtcErrMediaNotStarted):媒体会话未建立,比如对端未开启音频流。
    • 30200(kNERtcErrConnectionNotFound): 连接未建立。
    • 30203(kNERtcErrTrackNotFound):音频 track 未找到。
    • 30300:Transceiver 未找到。
    • 30400:未找到对应房间。

◆ release()

virtual void nertc::IRtcChannel::release ( )
pure virtual

销毁 IRtcChannel 实例,释放资源。

自从
V4.5.0

◆ setAudioRecvRange()

virtual int nertc::IRtcChannel::setAudioRecvRange ( int audible_distance,
int conversational_distance,
NERtcDistanceRolloffModel roll_off )
pure virtual

空间音效的距离衰减属性和语音范围。

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
注解
  • 请先调用 enableSpatializer 接口启用空间音效,再调用本接口。
  • 在通话过程中无法修改该属性,只有退出房间后才可重新设置。
参数说明
参数名称 类型 描述
audible_distance Integer 监听器能接收到音频的最大距离,用户的声音在该范围内可被听见。在该范围内,声音将会随距离的增加而衰减,直至超出所设置的范围,则不再有声音。取值范围[0,1000] 默认值为 32。
conversational_distance Integer 监听器不对音频进行衰减的距离,在该距离范围内,扬声器音频保持其原始音量,超出该范围时,声音将会随距离的增加而衰减。默认值为 1。
roll_off NERtcDistanceRolloffModel 距离衰减模式。默认值为 kNERtcDistanceRolloffNone

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

◆ setChannelEventHandler()

virtual int nertc::IRtcChannel::setChannelEventHandler ( IRtcChannelEventHandler * handler)
pure virtual

设置 IRtcChannel 对象的事件句柄。
你可以通过设置的事件句柄,监听当前IRtcChannel对象对应房间的事件,并接收房间中用户视频信息等。

自从
V4.5.0
参数
[in]handler事件监听句柄对象
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setClientRole()

virtual int nertc::IRtcChannel::setClientRole ( NERtcClientRole role)
pure virtual

设置直播场景下的用户角色。
通过本接口可以实现将用户角色在“主播”(kNERtcClientRoleBroadcaster)和“观众“(kNERtcClientRoleAudience)之间的切换,用户加入房间后默认为“主播”。

自从
V3.9.0
使用前提
该方法仅在通过 setChannelProfile 方法设置房间场景为直播场景(kNERtcChannelProfileLiveBroadcasting)时调用有效。
调用时机
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
业务场景
适用于观众上下麦与主播互动的互动直播场景。
注解
用户切换为观众角色时,SDK 会自动关闭音视频设备。
参数说明
参数名称 类型 描述
role NERtcClientRole 用户角色:
  • kNERtcClientRoleBroadcaster(0):设置用户角色为主播。主播可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、加入或退出房间状态对其他房间内用户可见。
  • kNERtcClientRoleAudience(1):设置用户角色为观众。观众只能收流不能发流加入或退出房间状态对其他房间内用户不可见。
示例代码
//切换用户角色为主播
rtc_channel_->setClientRole(nertc::kNERtcClientRoleBroadcaster);
//切换用户角色为观众
rtc_channel_->setClientRole(nertc::kNERtcClientRoleAudience);
@ kNERtcClientRoleAudience
定义 NertcEngineDefines.h:220
@ kNERtcClientRoleBroadcaster
定义 NertcEngineDefines.h:209
相关回调
  • 加入房间前调用该方法设置用户角色,不会触发任何回调,在加入房间成功后角色自动生效:
    • 设置用户角色为主播:加入房间后,远端用户触发 onUserJoined 回调。
    • 设置用户角色为观众:加入房间后,远端用户不触发任何回调。
  • 加入房间后调用该方法切换用户角色:
    • 从观众角色切为主播:本端用户触发 onClientRoleChanged 回调,远端用户触发 onUserJoined 回调。
    • 从主播角色切为观众:本端用户触发 onClientRoleChanged 回调,远端用户触发 onUserleft 回调。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):引擎未创建成功。
    • 30005(kNERtcErrInvalidState):当前状态不支持的操作,不支持切换角色(主播/观众)。
    • 30101(kNERtcErrChannelNotJoined): 尚未加入房间。

◆ setPublishAudioAllowList()

virtual int nertc::IRtcChannel::setPublishAudioAllowList ( uid_t * uid_array,
uint32_t size )
pure virtual

设置自己的音频只能被房间内指定的人订阅。
默认房间所有其他人都可以订阅自己的音频。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V4.6.10
参数
[in]uid_array可订阅自己音频的用户uid 列表。
注解
此列表为全量列表。如果列表为空或 null,表示其他所有人均可订阅自己的音频。
参数
[in]sizeuid_array 的数组长度。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setRangeAudioMode()

virtual int nertc::IRtcChannel::setRangeAudioMode ( NERtcRangeAudioMode mode)
pure virtual

设置范围语音模式

注解
此接口在加入房间前后均可调用。
参数
[in]mode范围语音模式
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setRangeAudioTeamID()

virtual int nertc::IRtcChannel::setRangeAudioTeamID ( int32_t team_id)
pure virtual

设置范围语音小队

注解
此接口在加入房间前后均可调用。
参数
team_id小队ID
返回
  • 0: 方法调用成功
  • 其他: 调用失败

◆ setStatsObserver()

virtual int nertc::IRtcChannel::setStatsObserver ( IRtcMediaStatsObserver * observer)
pure virtual

注册统计信息观测器。

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

◆ setSubscribeAudioAllowList()

virtual int nertc::IRtcChannel::setSubscribeAudioAllowList ( uid_t * uid_array,
uint32_t size )
pure virtual

你可以调用该方法指定只订阅的音频流。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V5.4.101
参数
[in]uid_array只订阅此 用户uid列表 的音频。
注解
此列表为全量列表。如果列表为空或 null,取消订阅白名单。
参数
[in]sizeuid_array 的数组长度。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setSubscribeAudioBlockList()

virtual int nertc::IRtcChannel::setSubscribeAudioBlockList ( uid_t * uid_array,
uint32_t size )
pure virtual

你可以调用该方法指定不订阅的音频流。

注解
  • 此接口需要在加入房间成功后调用。
  • 对于调用接口时不在房间的 uid 不生效。
自从
V5.4.101
参数
[in]uid_array不订阅此 用户uid列表 的音频。
注解
此列表为全量列表。如果列表为空或 null,取消订阅黑名单。
参数
[in]sizeuid_array 的数组长度。
返回
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ subscribeAllRemoteAudioStream()

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

取消或恢复订阅所有远端用户的音频主流。
加入房间时,默认订阅所有远端用户的音频主流,即 setParameters 方法的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true;只有当该参数的设置为 false 时,此接口的调用才会生效。

自从
V4.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于重要会议需要一键全体静音的场景。
注解
  • 设置该方法的 subscribe 参数为 true 后,对后续加入房间的用户同样生效。
  • 在开启自动订阅(默认)时,设置该方法的 subscribe 参数为 false 可以实现取消订阅所有远端用户的音频流,但此时无法再调用 subscribeRemoteAudioStream 方法单独订阅指定远端用户的音频流。
参数说明
参数名称 类型 描述
subscribe bool 是否订阅所有用户的音频主流:
  • true:订阅音频主流。
  • false:取消订阅音频主流。
示例代码
//订阅所有远端用户的音频主流
rtc_channel_->subscribeAllRemoteAudioStream(true);
//取消订阅所有远端用户的音频主流
rtc_channel_->subscribeAllRemoteAudioStream(false);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):引擎未初始化。
    • 30026:ASL 选路功能启用失败。
    • 30400:Transceiver 未找到。

◆ subscribeRemoteAudioStream()

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

取消或恢复订阅所有远端用户的音频主流。
加入房间时,默认订阅所有远端用户的音频主流,即 setParameters 方法的 KEY_AUTO_SUBSCRIBE_AUDIO 参数默认设置为 true;只有当该参数的设置为 false 时,此接口的调用才会生效。

自从
V4.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
业务场景
适用于重要会议需要一键全体静音的场景。
注解
设置该方法的 subscribe 参数为 true 后,对后续加入房间的用户同样生效。 在开启自动订阅(默认)时,设置该方法的 subscribe 参数为 false 可以实现取消订阅所有远端用户的音频流,但此时无法再调用 subscribeRemoteAudioStream 方法单独订阅指定远端用户的音频流。
参数说明
参数名称 类型 描述
subscribe bool 是否订阅所有用户的音频主流:
  • true:订阅音频主流。
  • false:取消订阅音频主流。
示例代码
//订阅所有远端用户的音频主流
rtc_channel_->subscribeAllRemoteAudioStream(true);
//取消订阅所有远端用户的音频主流
rtc_channel_->subscribeAllRemoteAudioStream(false);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30005(kNERtcErrInvalidState):引擎尚未初始化或尚未加入房间。
    • 30008(kNERtcErrDeviceNotFound:设备未找到。
    • 30015(kNERtcErrConnectFail ):服务器连接错误。
    • 30101(kNERtcErrChannelNotJoined):尚未加入房间。
    • 30105(kNERtcErrUserNotFound):未找到指定用户。
    • 30106(kNERtcErrInvalidUserID):非法指定用户,比如订阅了本端。
    • 30200(kNERtcErrConnectionNotFound):未连接成功。

◆ switchChannel()

virtual int nertc::IRtcChannel::switchChannel ( const char * token,
const char * channel_name,
const NERtcJoinChannelOptions & channel_options )
pure virtual

快速切换音视频房间。
房间场景为直播场景时,房间中角色为观众的成员可以调用该方法从当前房间快速切换至另一个房间。
成功调用该方切换房间后,本端会先收到离开房间的回调 onLeaveChannel,再收到成功加入新房间的回调 onJoinChannel。远端用户会收到 onUserLeave 和 onUserJoined 的回调。

注解
  • 房间成员成功切换房间后,默认订阅房间内所有其他成员的音频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 subscribeRemoteAudio 方法传入 false 实现。
参数
[in]token安全认证签名(NERTC Token)。可设置为:
  • null。调试模式下可设置为 null。建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
  • 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
[in]channel_name期望切换到的目标房间名称。
返回
-0: 方法调用成功 -其他:方法调用失败

◆ updateSelfPosition()

virtual int nertc::IRtcChannel::updateSelfPosition ( const NERtcPositionInfo & info)
pure virtual

设置空间音效中说话者和接收者的空间位置信息。SDK 会根据该方法中的参数计算接收者和说话者之间的相对位置,进而渲染出空间音效。

自从
V5.4.0
调用时机
请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 请先调用 enableSpatializer 接口启用空间音效,再调用本接口。
  • 调用 enableSpatializer 接口关闭空间音效后,空间位置信息会重置为默认值,您需要重新设置位置信息。
参数说明
通过 info 参数设置空间音效中说话者和接收者的空间位置信息。 NERtcSpatializerPositionInfo 的具体参数说明如下表所示。
参数名称 描述
speaker_position 说话者的位置信息,三个值依次表示X、Y、Z的坐标值。默认值{0,0,0}
speaker_quaternion 说话者的旋转信息,通过四元组来表示,数据格式为{w, x, y, z}。默认值{0,0,0,0}
head_position 接收者的位置信息,三个值依次表示X、Y、Z的坐标值。默认值{0,0,0}
head_quaternion 接收者的旋转信息,通过四元组来表示,数据格式为{w, x, y, z}。默认值{0,0,0,0}

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

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