|
NERTC macOS/Windows SDK V5.10.1
|
#include <nertc_engine.h>
Public 成员函数 | |
| 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 | joinChannel (const char *token, const char *channel_name, uid_t uid, NERtcJoinChannelOptions channel_options)=0 |
| virtual int | switchChannel (const char *token, const char *channel_name)=0 |
| virtual int | switchChannel (const char *token, const char *channel_name, NERtcJoinChannelOptions channel_options)=0 |
| virtual int | switchChannelEx (const char *token, const char *channel_name, NERtcJoinChannelOptionsEx channel_options_ex)=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 | enableLocalVideo (NERtcVideoStreamType type, bool enabled)=0 |
| virtual int | subscribeRemoteVideoStream (uid_t uid, NERtcRemoteVideoStreamType type, bool subscribe)=0 |
| virtual int | subscribeRemoteVideoStream (uid_t uid, NERtcVideoStreamType stream_type, NERtcRemoteVideoStreamType subscribe_type, bool subscribe)=0 |
RtcEngine 类提供了供 App 调用的主要接口方法。
IRtcEngine 是 NERTC SDK 的基础接口类。创建一个 IRtcEngine 对象并调用这个对象的方法可以激活 NERTC SDK 的通信功能。
|
pure virtual |
开启/关闭本地音频采集和发送。
通过本接口可以实现开启或关闭本地语音功能,进行本地音频采集及处理。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| enabled | boolean | 是否启用本地音频的采集和发送:
|
|
pure virtual |
开启或关闭本地视频的采集与发送。
通过本接口可以实现开启或关闭本地视频,不影响接收远端视频。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| enabled | bool | 是否开启本地视频采集与发送:
|
|
pure virtual |
开启或关闭本地视频的采集与发送。
通过主流或辅流视频通道进行本地视频流的采集与发送。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| type | NERtcVideoStreamType | 视频通道类型:
|
| enabled | bool | 是否开启本地视频采集与发送:
|
|
pure virtual |
创建 NERtc 实例。
通过本接口可以实现创建 NERtc 实例并初始化 NERTC SDK 服务。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| context | NERtcEngineContext | 传入的 RTC engine context 对象。 |
|
pure virtual |
加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| token | const char | 安全认证签名(NERTC Token),可以设置为:
|
| channelName | const char | 房间名称,设置相同房间名称的用户会进入同一个通话房间。
|
| uid | uid_t | 用户的唯一标识 ID。 |
|
pure virtual |
加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| token | const char | 安全认证签名(NERTC Token),可以设置为:
|
| channelName | const char | 房间名称,设置相同房间名称的用户会进入同一个通话房间。
|
| uid | uid_t | 用户的唯一标识 ID。 |
| channel_options | NERtcJoinChannelOptions | 加入房间时设置一些特定的房间参数。默认值为 nil。 |
|
pure virtual |
离开音视频房间。
通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。
|
pure virtual |
获取设备管理员对象的指针。
| [in] | iid | 想要获取的接口的 iid. |
| [in] | inter | 指向 DeviceManager 对象的指针。 |
|
pure virtual |
销毁 NERtc 实例,并释放资源。
该方法释放 NERTC SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,完成音视频通话后,则将资源释放出来用于其他操作,该方法适用于此类情况。
| [in] | sync | 默认为 true 且只能设置为 true,表示同步调用,等待 IRtcEngine 对象资源释放后再返回。 |
|
pure virtual |
设置房间场景。
通过此接口可以实现设置房间场景为通话(默认)、直播场景、视频 1 对 1 呼叫场景、语聊房场景等。针对不同场景采取的优化策略不同,如通话场景侧重语音流畅度,直播场景侧重视频清晰度。
setVideoConfig, setAudioProfile 等 API 设置的音视频相关配置,因此建议先第一时间设置场景再通过其他 API 调整音视频配置。setVideoConfig, setAudioProfile 等 API 设置的音视频相关配置 | 参数名称 | 类型 | 描述 |
|---|---|---|
| profile | NERtcChannelProfileType | 设置房间场景:
|
|
pure virtual |
设置直播场景下的用户角色。
通过本接口可以实现将用户角色在“主播”(kNERtcClientRoleBroadcaster)和“观众“(kNERtcClientRoleAudience)之间的切换,用户加入房间后默认为“主播”。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| role | NERtcClientRole | 用户角色:
|
|
pure virtual |
设置本地用户视图。
通过本接口可以实现绑定本地用户和显示视图,并设置本地用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| canvas | NERtcVideoCanvas | 本地用户视频的画布。设置为 NULL 表示取消并释放已设置的画布,详细信息请参考 NERtcVideoCanvas。 |
|
pure virtual |
设置远端用户视图。
通过本接口可以实现绑定远端用户和显示视图,并设置远端用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| canvas | NERtcVideoCanvas | 远端用户视频的画布。 |
| uid | uid_t | 远端用户的 ID。可以在 onUserJoined 回调中获取。 |
|
pure virtual |
订阅或取消订阅指定远端用户的视频主流。
加入房间后,默认不订阅所有远端用户的视频主流;若您希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频主流。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| uid | uid_t | 指定用户的 ID。 |
| type | NERtcRemoteVideoStreamType | 订阅的视频流类型:
|
| subscribe | bool | 是否订阅远端用户的视频流:
|
|
pure virtual |
订阅或取消订阅指定远端用户的视频主流。
加入房间后,默认不订阅所有远端用户的视频主流;若您希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频主流。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| uid | uid_t | 指定用户的 ID。 |
| stream_type | NERtcVideoStreamType | 视频通道类型:
|
| subscribe_type | NERtcRemoteVideoStreamType | 订阅的视频流类型:
|
| subscribe | bool | 是否订阅远端用户的视频流:
|
|
pure virtual |
快速切换音视频房间。 通过此接口可以实现当房间场景为直播场景时,从当前房间快速切换至另一个房间。
| 参数名称 | 类型 | 描述 |
|---|---|---|
| token | const char* | 在服务器端生成的用于鉴权的安全认证签名(Token),可设置为:
|
| channel_name | const char* | 期望切换到的目标房间名称。 |
|
pure virtual |
快速切换音视频房间。
房间场景为直播场景时,可以调用该方法从当前房间快速切换至另一个房间。
成功调用该方切换房间后,本端会先收到离开房间的回调 onLeaveChannel,再收到成功加入新房间的回调 onJoinChannel。远端用户会收到 onUserLeave 和 onUserJoined 的回调。
| [in] | token | 安全认证签名(NERTC Token)。可设置为:
|
| [in] | channel_name | 期望切换到的目标房间名称。 |
| [in] | channel_options | 加入房间时设置一些特定的房间参数,详情参考 NERtcJoinChannelOptions。 |
|
pure virtual |
快速切换音视频房间。
房间场景为直播场景时,房间中角色为观众的成员可以调用该方法从当前房间快速切换至另一个房间。
成功调用该方切换房间后,本端会先收到离开房间的回调 onLeaveChannel,再收到成功加入新房间的回调 onJoinChannel。远端用户会收到 onUserLeave 和 onUserJoined 的回调。
| [in] | token | 安全认证签名(NERTC Token)。可设置为:
|
| [in] | channel_name | 期望切换到的目标房间名称。 |
| [in] | channel_options | 加入房间时设置一些特定的房间参数,详情参考 NERtcJoinChannelOptions。 |