NERecord Linux SDK 5.5.310
Loading...
Searching...
No Matches
Public Member Functions | List of all members
nerecord::IRecordEngine Class Referenceabstract

#include <nerecord_engine.h>

Public Member Functions

virtual int initialize (const NERecordEngineContext &context)=0
 
virtual void release ()=0
 
virtual int joinChannel (const char *token, const char *channel_name, uid_t uid)=0
 
virtual int leaveChannel ()=0
 
virtual int subscribeRemoteAudioStream (uid_t uid, bool subscribe)=0
 
virtual int subscribeRemoteVideoStream (uid_t uid, NERtcRemoteVideoStreamType stream_type, bool subscribe)=0
 
virtual int subscribeRemoteVideoSubStream (uid_t uid, bool subscribe)=0
 
virtual int setVideoMixingLayout (const VideoMixingLayout &layout)=0
 
virtual int startMixingRecord ()=0
 
virtual void stopMixingRecord ()=0
 
virtual int updateSubscribeAudioUids (uid_t *uids, uint32_t num)=0
 
virtual int updateSubscribeVideoUids (uid_t *uids, uint32_t num)=0
 
virtual void startService ()=0
 
virtual void stopService ()=0
 
virtual void updateWatermarkConfigs (uint32_t wm_num, const WatermarkConfig *configs)=0
 
virtual void updateWatermarkConfigs (uid_t uid, bool substream, uint32_t wm_num, const WatermarkConfig *configs)=0
 
virtual int enableAudioVolumeIndication (bool enable, uint64_t interval)=0
 
virtual int setUserBackground (uid_t uid, const char *image)=0
 
virtual int enableEncryption (bool enable, const NERecordEncryptionConfig &config)=0
 
virtual const NERtcRecordingEnginePropertiesgetProperties ()=0
 

Detailed Description

RecordEngine 类提供了供 App 调用的主要接口方法。

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

Member Function Documentation

◆ enableAudioVolumeIndication()

virtual int nerecord::IRecordEngine::enableAudioVolumeIndication ( bool enable,
uint64_t interval )
pure virtual

启用说话者音量提示。该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。

启用该方法后,无论频道内是否有人说话,都会在"onRemoteAudioVolumeIndication" 回调中按设置的间隔时间返回音量提示。

Parameters
enable是否启用说话者音量提示。
interval指定音量提示的时间间隔,单位为毫秒。必须设置为 100 毫秒的整数倍值。
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ enableEncryption()

virtual int nerecord::IRecordEngine::enableEncryption ( bool enable,
const NERecordEncryptionConfig & config )
pure virtual

开启或关闭媒体流加密。 在金融行业等安全性要求较高的场景下,您可以在加入房间前通过此方法设置媒体流加密模式。

Note
  • 请在加入房间前调用该方法,加入房间后无法修改加密模式与密钥。用户离开房间后,SDK 会自动关闭加密。如需重新开启加密,需要在用户再次加入房间前调用此方法。
  • 同一房间内,所有开启媒体流加密的用户必须使用相同的加密模式和密钥,否则使用不同密钥的成员加入房间时会报错 kNERtcErrEncryptNotSuitable(30113)。
  • 安全起见,建议每次启用媒体流加密时都更换新的密钥。
Parameters
enable是否开启媒体流加密。
  • true: 开启
  • false:(默认)关闭
config媒体流加密方案。详细信息请参考 nerecord::NERtcEncryptionConfig。
Returns
  • 0: 方法调用成功
  • 其他: 调用失败
Since
5.5.3103

◆ getProperties()

virtual const NERtcRecordingEngineProperties * nerecord::IRecordEngine::getProperties ( )
pure virtual

获取录制属性。

◆ initialize()

virtual int nerecord::IRecordEngine::initialize ( const NERecordEngineContext & context)
pure virtual

初始化 NERECORD SDK 服务。

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

Warning
  • 必须使用同一个 App Key 才能进行通话。
  • 一个 IRecordEngine 实例对象只能使用一个 App Key。如需更换 App Key,必须先调用 release 方法销毁当前实例,再调用本方法重新创建实例。
Parameters
[in]context传入的 RECORD engine context 对象: NERecordEngineContext.
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ joinChannel()

virtual int nerecord::IRecordEngine::joinChannel ( const char * token,
const char * channel_name,
uid_t uid )
pure virtual

初始化频道,录制 SDK 需要先预加入频道后再加入频道。

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

Note
频道内每个用户的用户 ID 必须是唯一的。
Parameters
[in]channel_name标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符): a-z, A-Z, 0-9, space, !#$%&()+-:;≤.,>? @[]^_{|}~”
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。 加入频道。

该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 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:方法调用成功。
  • 其他:方法调用失败。

◆ leaveChannel()

virtual int nerecord::IRecordEngine::leaveChannel ( )
pure virtual

离开频道。

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

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

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

Note
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ release()

virtual void nerecord::IRecordEngine::release ( )
pure virtual

销毁 IRecordEngine 对象。

◆ setUserBackground()

virtual int nerecord::IRecordEngine::setUserBackground ( uid_t uid,
const char * image )
pure virtual

设置指定用户的背景。当指定 uid 没有发送视频流时,会显示该背景图片。

Parameters
uid指定用户 uid。
image背景图片的路径。
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ setVideoMixingLayout()

virtual int nerecord::IRecordEngine::setVideoMixingLayout ( const VideoMixingLayout & layout)
pure virtual

设置视频合流布局。

视频合流模式下, 调用该函数设置布局模式。

Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ startMixingRecord()

virtual int nerecord::IRecordEngine::startMixingRecord ( )
pure virtual

开始合流录制。

合流模式下, 调用该函数开始录制。

Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ startService()

virtual void nerecord::IRecordEngine::startService ( )
pure virtual

手动模式下开始录制。

◆ stopMixingRecord()

virtual void nerecord::IRecordEngine::stopMixingRecord ( )
pure virtual

结束合流录制。

合流模式下, 调用该函数结束录制。

◆ stopService()

virtual void nerecord::IRecordEngine::stopService ( )
pure virtual

手动模式下停止录制。

◆ subscribeRemoteAudioStream()

virtual int nerecord::IRecordEngine::subscribeRemoteAudioStream ( uid_t uid,
bool subscribe )
pure virtual

订阅/取消订阅指定音频流。

Parameters
[in]uid指定用户的 ID
[in]subscribe
  • true:订阅指定音频流(默认)。
  • false:取消订阅指定音频流。
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ subscribeRemoteVideoStream()

virtual int nerecord::IRecordEngine::subscribeRemoteVideoStream ( uid_t uid,
NERtcRemoteVideoStreamType stream_type,
bool subscribe )
pure virtual

订阅/取消订阅指定视频流。

Parameters
[in]uid指定用户的 ID
[in]max_profile最大分辨率
[in]subscribe
  • true:订阅指定视频流。
  • false:取消订阅指定视频流。
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ subscribeRemoteVideoSubStream()

virtual int nerecord::IRecordEngine::subscribeRemoteVideoSubStream ( uid_t uid,
bool subscribe )
pure virtual

订阅/取消订阅指定用户视频辅流。

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

◆ updateSubscribeAudioUids()

virtual int nerecord::IRecordEngine::updateSubscribeAudioUids ( uid_t * uids,
uint32_t num )
pure virtual

手动模式下批量更新订阅的音频流。

不在数组中已定阅的流会被取消订阅

Parameters
[in]uids指定用户的 ID 数组
[in]numuids 数组大小
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ updateSubscribeVideoUids()

virtual int nerecord::IRecordEngine::updateSubscribeVideoUids ( uid_t * uids,
uint32_t num )
pure virtual

手动模式下批量更新订阅的视频流。

不在数组中已定阅的流会被取消订阅

Parameters
[in]uids指定用户的 ID 数组
[in]numuids 数组大小
Returns
  • 0:方法调用成功。
  • 其他:方法调用失败。

◆ updateWatermarkConfigs() [1/2]

virtual void nerecord::IRecordEngine::updateWatermarkConfigs ( uid_t uid,
bool substream,
uint32_t wm_num,
const WatermarkConfig * configs )
pure virtual

更新单流录制视频水印。

录制重启后水印会被取消

Parameters
[in]uid用户 uid
[in]substreamfalse - 更新主流水印, true - 更新辅流水印
[in]wm_num水印个数
[in]configs水印数组 WatermarkConfig

◆ updateWatermarkConfigs() [2/2]

virtual void nerecord::IRecordEngine::updateWatermarkConfigs ( uint32_t wm_num,
const WatermarkConfig * configs )
pure virtual

更新合流录制视频水印。

录制重启后水印会被取消

Parameters
[in]wm_num水印个数
[in]configs水印数组 WatermarkConfig

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