#include <INertcChannel.h>
|
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 毫秒以上。 |
- 示例代码
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: 关闭空间音效
|
- 返回
-
◆ getChannelName()
virtual const char * nertc::IRtcChannel::getChannelName |
( |
| ) |
|
|
pure virtual |
获取当前房间名。
- 自从
- V4.5.0
- 返回
- 成功:当前IRtcChannel房间名。
- 失败:返回空。
◆ getConnectionState()
获取当前房间连接状态。
- 自从
- V4.5.0
- 返回
- 房间连接状态。#NERtcConnectionStateType.
◆ getMicrophoneMode()
virtual int nertc::IRtcChannel::getMicrophoneMode |
( |
bool * | enabled | ) |
|
|
pure virtual |
◆ initSpatializer()
virtual int nertc::IRtcChannel::initSpatializer |
( |
| ) |
|
|
pure virtual |
初始化引擎3D音效算法
- 注解
- 此接口在加入房间前调用,退出房间后不重置
- 返回
-
◆ isInChannel()
virtual bool nertc::IRtcChannel::isInChannel |
( |
| ) |
|
|
pure virtual |
检查是否已经在房间内
- 参数
-
enabled | 输出结果,true:在房间内 false:不在房间内 |
- 返回
-
◆ 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);
virtual int joinChannel(const char *token)=0
- 相关接口
-
- 相关回调
-
- 返回
- 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);
- 相关接口
-
- 相关回调
-
- 返回
- 0(kNERtcNoError):方法调用成功。
- 其他:方法调用失败。
- 30001(kNERtcErrFatal):重复入会或获取房间信息失败。
- 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化或正在进行网络探测。
◆ joinChannel() [3/3]
加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。
- 自从
- 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);
rtc_channel_->
joinChannel(token, uid, channel_options);
定义 NertcEngineDefines.h:7000
char custom_info[kNERtcCustomInfoLength]
定义 NertcEngineDefines.h:7006
char * permission_key
定义 NertcEngineDefines.h:7012
- 相关接口
-
- 相关回调
-
- 返回
- 0(kNERtcNoError):方法调用成功。
- 其他:方法调用失败。
- 30001(kNERtcErrFatal):重复入会或获取房间信息失败。
- 30005(kNERtcErrInvalidState):状态错误,比如引擎尚未初始化或正在进行网络探测。
◆ leaveChannel()
virtual int nertc::IRtcChannel::leaveChannel |
( |
| ) |
|
|
pure virtual |
离开音视频房间。
通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。
- 自从
- V3.5.0
- 调用时机
- 请在初始化并成功加入房间后调用该方法。
- 注解
-
- 示例代码
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 |
◆ setAudioRecvRange()
virtual int nertc::IRtcChannel::setAudioRecvRange |
( |
int | audible_distance, |
|
|
int | conversational_distance, |
|
|
NERtcDistanceRolloffModel | roll_off ) |
|
pure virtual |
空间音效的距离衰减属性和语音范围。
- 自从
- V5.4.0
- 调用时机
- 请在引擎初始化后调用此接口,且该方法在加入房间前才可调用。
- 注解
-
- 参数说明
参数名称 | 类型 | 描述 |
audible_distance | Integer | 监听器能接收到音频的最大距离,用户的声音在该范围内可被听见。在该范围内,声音将会随距离的增加而衰减,直至超出所设置的范围,则不再有声音。取值范围[0,1000] 默认值为 32。 |
conversational_distance | Integer | 监听器不对音频进行衰减的距离,在该距离范围内,扬声器音频保持其原始音量,超出该范围时,声音将会随距离的增加而衰减。默认值为 1。 |
roll_off | NERtcDistanceRolloffModel | 距离衰减模式。默认值为 kNERtcDistanceRolloffNone 。 |
- 返回
-
◆ setChannelEventHandler()
设置 IRtcChannel 对象的事件句柄。
你可以通过设置的事件句柄,监听当前IRtcChannel对象对应房间的事件,并接收房间中用户视频信息等。
- 自从
- V4.5.0
- 参数
-
- 返回
-
◆ setClientRole()
设置直播场景下的用户角色。
通过本接口可以实现将用户角色在“主播”(kNERtcClientRoleBroadcaster)和“观众“(kNERtcClientRoleAudience)之间的切换,用户加入房间后默认为“主播”。
- 自从
- V3.9.0
- 使用前提
- 该方法仅在通过 setChannelProfile 方法设置房间场景为直播场景(kNERtcChannelProfileLiveBroadcasting)时调用有效。
- 调用时机
- 请在初始化后调用该方法,且该方法在加入房间前后均可调用。
- 业务场景
- 适用于观众上下麦与主播互动的互动直播场景。
- 注解
- 用户切换为观众角色时,SDK 会自动关闭音视频设备。
- 参数说明
参数名称 | 类型 | 描述 |
role | NERtcClientRole | 用户角色:
-
kNERtcClientRoleBroadcaster(0):设置用户角色为主播。主播可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、加入或退出房间状态对其他房间内用户可见。
-
kNERtcClientRoleAudience(1):设置用户角色为观众。观众只能收流不能发流加入或退出房间状态对其他房间内用户不可见。
|
- 示例代码
@ kNERtcClientRoleAudience
定义 NertcEngineDefines.h:220
@ kNERtcClientRoleBroadcaster
定义 NertcEngineDefines.h:209
- 相关回调
- 加入房间前调用该方法设置用户角色,不会触发任何回调,在加入房间成功后角色自动生效:
- 设置用户角色为主播:加入房间后,远端用户触发 onUserJoined 回调。
- 设置用户角色为观众:加入房间后,远端用户不触发任何回调。
- 加入房间后调用该方法切换用户角色:
- 返回
- 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,表示其他所有人均可订阅自己的音频。
- 参数
-
- 返回
-
◆ setRangeAudioMode()
设置范围语音模式
- 注解
- 此接口在加入房间前后均可调用。
- 参数
-
- 返回
-
◆ setRangeAudioTeamID()
virtual int nertc::IRtcChannel::setRangeAudioTeamID |
( |
int32_t | team_id | ) |
|
|
pure virtual |
设置范围语音小队
- 注解
- 此接口在加入房间前后均可调用。
- 参数
-
- 返回
-
◆ setStatsObserver()
注册统计信息观测器。
- 自从
- V4.5.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,取消订阅白名单。
- 参数
-
- 返回
-
◆ setSubscribeAudioBlockList()
virtual int nertc::IRtcChannel::setSubscribeAudioBlockList |
( |
uid_t * | uid_array, |
|
|
uint32_t | size ) |
|
pure virtual |
你可以调用该方法指定不订阅的音频流。
- 注解
- 此接口需要在加入房间成功后调用。
- 对于调用接口时不在房间的 uid 不生效。
- 自从
- V5.4.101
- 参数
-
[in] | uid_array | 不订阅此 用户uid列表 的音频。 |
- 注解
- 此列表为全量列表。如果列表为空或 null,取消订阅黑名单。
- 参数
-
- 返回
-
◆ 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()
设置空间音效中说话者和接收者的空间位置信息。SDK 会根据该方法中的参数计算接收者和说话者之间的相对位置,进而渲染出空间音效。
- 自从
- V5.4.0
- 调用时机
- 请在引擎初始化后调用此接口,且该方法在加入房间前后均可调用。
- 注解
-
- 参数说明
- 通过 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} |
- 返回
-
该类的文档由以下文件生成:
- D:/Formatter/api-for-code/1-ToWarehouse/unreal-sdk/Plugins/NertcPlugin/Source/NertcPlugin/Public/INertcChannel.h