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

#include <nertc_engine.h>

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

Public Member Functions

virtual int initialize (const NERtcEngineContext &context)=0
 
virtual void release (bool sync=false)=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 调用的主要接口方法。

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

Member Function Documentation

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

开启或关闭本地语音采集或处理

该方法可以重新开启本地语音功能,重新开始本地音频采集及处理。

该方法不影响接收或播放远端音频流。

Note
该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
Parameters
[in]enabled
  • true: 重新开启本地语音功能,即开启本地语音采集或处理(默认)
  • false: 关闭本地语音功能,即停止本地语音采集或处理
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::enableLocalVideo ( bool  enabled)
pure virtual

开启或关闭本地视频采集和渲染

该方法启用本地视频采集功能。

Note
该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。
Parameters
[in]enabled是否启用本地视频:
  • true: 开启本地视频采集和渲染 (默认);
  • false: 关闭使用本地摄像头设备。关闭后,远端用户会接收不到本地用户的视频流;但本地用户依然可以接收远端用户的视频流。设置为 false 时,该方法不需要本地有摄像头。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::initialize ( const NERtcEngineContext context)
pure virtual

初始化 NERTC SDK 服务。

该方法用来进行初始化 NERTC 服务。传入云信为开发者签发的厂商秘钥进行初始化。 在调用 createNERtcEngine() 方法创建 IRtcEngine 对象后,必须先调用该方法进行初始化,才能使用其他方法。初始化成功后,默认处于音视频通话模式。

Warning
  • 必须使用同一个 App Key 才能进行通话。
  • 一个 IRtcEngine 实例对象只能使用一个 App Key。如需更换 App Key,必须先调用 release 方法销毁当前实例,再调用本方法重新创建实例。
Parameters
[in]context传入的RTC engine context对象: NERtcEngineContext.
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::joinChannel ( const char *  token,
const char *  channel_name,
uid_t  uid 
)
pure virtual

加入频道。如果频道还未创建,会自动尝试创建频道。

该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。 使用不同 App Key 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。

Note
频道内每个用户的用户 ID 必须是唯一的。
Parameters
[in]token动态秘钥。安全要求不高: 将值设为 空字符串。安全要求高: 将值设置为 Token。如果你已经启用了 App Certificate, 请务必使用 Token。
[in]channel_name标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”
[in]uid用户ID。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::leaveChannel ( )
pure virtual

离开频道。

离开频道,即挂断或退出通话。

当调用 joinChannel 方法后,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用 leaveChannel,没有副作用。该方法会把会话相关的所有资源释放掉。

该方法是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK 会触发 onLeaveChannel 回调。

Note
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::queryInterface ( NERtcInterfaceIdType  iid,
void **  inter 
)
pure virtual

Retrieves the pointer to the device manager object.

Parameters
iidID of the interface.
interPointer to the DeviceManager object.
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual void nertc::IRtcEngine::release ( bool  sync = false)
pure virtual

销毁 IRtcEngine 对象。

Parameters
[in]sync
  • true: 同步调用。在等待 IRtcEngine 对象资源释放后再返回。App 不应该在 SDK 产生的回调中调用该接口,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。SDK 会自动检测这种死锁并转为异步调用,但是检测本身会消耗额外的时间。
  • false: 异步调用。不等 IRtcEngine 对象资源释放就立即返回。SDK 会自行释放所有资源。使用异步调用时要注意,不要在该调用后立即卸载 SDK 动态库,否则可能会因为 SDK 的清理线程还没有退出而崩溃。
virtual int nertc::IRtcEngine::setChannelProfile ( NERtcChannelProfileType  profile)
pure virtual

设置通话模式

Note
必须在加入通话前设置,开始通话后设置无效,结束通话后保留之前的设置。
Parameters
[in]profile场景模式 NERtcChannelProfileType
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::setupLocalVideoCanvas ( NERtcVideoCanvas canvas)
pure virtual

设置本地视图。

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

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

设置远端用户视图。

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

如果 App 不能事先知道对方的 uid,可以在 APP 收到 onUserJoined 事件时设置。 退出频道后,SDK 会把远端用户的绑定关系清除掉。

Parameters
[in]uid远端用户 ID。
[in]canvas视频画布信息
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。
virtual int nertc::IRtcEngine::subscribeRemoteVideoStream ( uid_t  uid,
NERtcRemoteVideoStreamType  type,
bool  subscribe 
)
pure virtual

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

Parameters
[in]uid指定用户的用户 ID。
[in]type流类型。 NERtcRemoteVideoStreamType
[in]subscribe
  • true: 订阅指定远端用户的视频流;
  • false: 取消订阅指定远端用户的视频流。
Returns
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

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