#include <INertcEngine.h>
|
virtual | ~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, const NERtcJoinChannelOptions &channel_options)=0 |
|
virtual int | switchChannel (const char *token, const char *channel_name, const NERtcJoinChannelOptions &channel_options)=0 |
|
virtual int | switchChannelEx (const char *token, const char *channel_name, uid_t uid, const NERtcJoinChannelOptionsEx &channel_options)=0 |
|
virtual int | leaveChannel ()=0 |
|
virtual int | queryInterface (NERtcInterfaceIdType iid, void **inter)=0 |
|
virtual int | enableLocalAudio (NERtcAudioStreamType type, bool enabled)=0 |
|
◆ ~IRtcEngine()
virtual nertc::IRtcEngine::~IRtcEngine |
( |
| ) |
|
|
inlinevirtual |
◆ enableLocalAudio()
开启/关闭本地音频采集
该方法可以重新开启本地语音功能,重新开始本地音频采集及处理。
该方法不影响接收或播放远端音频流。
- 注解
- 该方法与 muteLocalAudioStream 的区别在于:
-
该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
- 参数
-
[in] | type | 音频流类型: |
[in] | enabled |
- true: 重新开启本地语音功能,即开启本地语音采集或处理(默认)
- false: 关闭本地语音功能,即停止本地语音采集或处理
|
- 返回
-
◆ initialize()
◆ joinChannel()
virtual int nertc::IRtcEngine::joinChannel |
( |
const char * | token, |
|
|
const char * | channel_name, |
|
|
uid_t | uid, |
|
|
const NERtcJoinChannelOptions & | channel_options ) |
|
pure virtual |
加入音视频房间。
加入音视频房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
- SDK 加入房间后,同一个房间内的用户可以互相通话,多个用户加入同一个房间,可以群聊。使用不同 App Key 的 App 之间不能互通。
- 成功调用该方加入房间后,本地会触发onJoinChannel回调,远端会触发onUserJoined回调。
- 用户成功加入房间后,默认订阅房间内所有其他用户的音频流,可能会因此产生用量并影响计费。如果想取消自动订阅,可以在通话前通过调用setParameters方法实现。
- 直播场景中的观众角色可以通过 switchChannel 快速切换房间。
- 注解
- 房间内每个用户的用户 ID 必须是唯一的。
- 参数
-
[in] | token | 安全认证签名(NERTC Token)。可设置为:
- null。调试模式下可设置为 null。安全性不高,建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
- 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
|
[in] | channel_name | 房间名称,设置相同房间名称的用户会进入同一个通话房间。字符串格式,长度为1~ 64 字节。支持以下89个字符:a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~” |
[in] | uid | 用户的唯一标识 id,房间内每个用户的 uid 必须是唯一的。
uid 可选,默认为 0。如果不指定(即设为 0),SDK 会自动分配一个随机 uid,并在 onJoinChannel 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
- 返回
- 0: 方法调用成功;
- 其他: 方法调用失败。
◆ leaveChannel()
virtual int nertc::IRtcEngine::leaveChannel |
( |
| ) |
|
|
pure virtual |
离开房间。
离开房间,即挂断或退出通话。
结束通话时,必须调用leaveChannel结束通话,否则无法开始下一次通话。
成功调用该方法离开房间后,本地会触发onLeaveChannel回调,远端会触发onUserLeave回调。
- 注解
- 该方法是异步操作,调用返回时并没有真正退出房间。在真正退出房间后,SDK 会触发onLeaveChannel回调。
- 如果您调用了leaveChannel后立即调用release,SDK 将无法触发onLeaveChannel回调。
- 返回
-
◆ queryInterface()
获取设备管理员对象的指针。
- 参数
-
[in] | iid | 想要获取的接口的iid. |
[in] | inter | 指向 DeviceManager 对象的指针。 |
- 返回
-
◆ release()
virtual void nertc::IRtcEngine::release |
( |
bool | sync = false | ) |
|
|
pure virtual |
销毁 NERtc 实例,释放资源。
该方法释放 NERTC SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。
调用 release 方法后,您将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通话功能,您必须重新创建一个新的 NERtc 实例。
- 注解
- 如果需要重新使用IRtcEngine,release 后不能再 initialize,需要 destroyNERtcEngine 后重新 createNERtcEngine。
- 参数
-
[in] | sync | 默认为 true 且只能设置为 true,表示同步调用,等待 IRtcEngine 对象资源释放后再返回。
App 不应该在 SDK 产生的回调中调用该接口,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。SDK 会自动检测这种死锁并转为异步调用,但是检测本身会消耗额外的时间。 |
◆ setChannelProfile()
设置房间场景。
房间场景可设置为通话或直播场景,不同的场景中 QoS 策略不同。
- 注解
- 必须在加入通话前设置,开始通话后设置无效,结束通话后保留之前的设置。
- 参数
-
[in] | profile | 设置房间场景。详细信息请参考 NERtcChannelProfileType。 |
- 返回
-
◆ setClientRole()
在直播场景中设置用户角色。
用户角色支持设置为主播或观众,主播和观众的权限不同。
- 主播:可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、上下线对其他房间内用户可见。
- 观众:不可以开关摄像头等设备、不可以发布流、不可以操作互动直播推流相关接口、上下线对其他房间内用户不可见。
- 注解
- 默认情况下用户以主播角色加入房间。
- 在加入房间前,用户可以调用本接口切换本端角色为观众。在加入房间后,用户也可以通过本接口切换用户角色。
- 用户切换为观众角色时,SDK 会自动关闭音视频设备。
- 参数
-
[in] | role | 用户角色。 NERtcClientRole |
- 返回
- 0: 方法调用成功;
- 其他: 方法调用失败。
◆ switchChannel()
virtual int nertc::IRtcEngine::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: 方法调用成功 -其他:方法调用失败
◆ switchChannelEx()
virtual int nertc::IRtcEngine::switchChannelEx |
( |
const char * | token, |
|
|
const char * | channel_name, |
|
|
uid_t | uid, |
|
|
const NERtcJoinChannelOptionsEx & | channel_options ) |
|
pure virtual |
快速切换音视频房间。
调用该方法从当前房间leave,然后加入至另一个房间。
成功调用该方切换房间后,本端会先收到离开房间的回调 onLeaveChannel,再收到成功加入新房间的回调 onJoinChannel。远端用户会收到 onUserLeave 和 onUserJoined 的回调。
- 房间成员成功切换房间后,默认订阅房间内所有其他成员的音频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 subscribeRemoteAudio 方法传入 false 实现。
- 参数
-
[in] | token | 安全认证签名(NERTC Token)。可设置为:
- null。调试模式下可设置为 null。建议在产品正式上线前在云信控制台中将鉴权方式恢复为默认的安全模式。
- 已获取的NERTC Token。安全模式下必须设置为获取到的 Token 。若未传入正确的 Token 将无法进入房间。推荐使用安全模式。
|
[in] | channel_name | 期望切换到的目标房间名称。 |
[in] | uid | 用户ID。 |
- 返回
- -0: 方法调用成功 -其他:方法调用失败
该类的文档由以下文件生成:
- D:/Formatter/api-for-code/1-ToWarehouse/unreal-sdk/Plugins/NertcPlugin/Source/NertcPlugin/Public/INertcEngine.h