IAgoraMediaRtcRecorder 类
initialize
virtual int initialize(base::IAgoraService* agora_service,bool enable_mix = true) = 0;
初始化录制器实例。
参数
参数 | 数据类型 | 描述 |
---|---|---|
agora_service | base::IAgoraService* | 声网服务对象,请确保已完成初始化。详见 IAgoraService 。 |
enable_mix | bool | 录制时是否启用合流模式:
|
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
joinChannel
virtual int joinChannel(const char* token,const char* channelId,const char* userId) = 0;
加入声网 RTC 频道。
参数
参数 | 数据类型 | 描述 |
---|---|---|
token | const char* | 用于鉴权的 或 。 |
channelId | const char* | 频道名。必须为字符串格式,且长度不超过 64 字节。支持的字符包括:
|
userId | const char* | 本地用户的用户 ID。如果未指定该参数或将 userId 设置为 null ,SDK 会自动分配一个用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
leaveChannel
virtual int leaveChannel() = 0;
离开声网 RTC 频道。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
enableEncryption
virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
启用或禁用内置加密功能。
在高安全性场景下,建议你在加入频道前调用该方法启用内置加密功能。
同一频道内的所有用户必须使用相同的加密模式和加密密钥。当所有用户离开频道后,该频道的加密密钥会被自动清除。
参数
参数 | 数据类型 | 描述 |
---|---|---|
enabled | bool | 是否启用内置加密功能:
|
config | const EncryptionConfig& | 内置加密配置。详见 EncryptionConfig 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
subscribeAllAudio
virtual int subscribeAllAudio() = 0;
订阅并录制频道中所有远端用户的音频。
该方法会订阅并录制频道中所有远端用户的音频,并自动订阅后续加入频道的远端用户的音频。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
subscribeAllVideo
virtual int subscribeAllVideo(const agora::rtc::VideoSubscriptionOptions& subscriptionOptions) = 0;
订阅频道中所有远端用户的视频。
该方法会自动订阅频道中所有远端用户的视频,包括之后加入频道的远端用户的视频。
参数
参数 | 数据类型 | 描述 |
---|---|---|
subscriptionOptions | const agora::rtc::VideoSubscriptionOptions& | 视频订阅选项。详见 VideoSubscriptionOptions 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
unsubscribeAllAudio
virtual int unsubscribeAllAudio() = 0;
停止订阅频道中所有远端用户的音频。
除非你显式调用 subscribeAudio
或 subscribeAllAudio
,否则该方法会自动停止订阅之后加入频道的任何用户的音频。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
unsubscribeAllVideo
virtual int unsubscribeAllVideo() = 0;
停止订阅频道中所有远端用户的视频。
调用该方法后,SDK 会停止订阅当前频道中所有远端用户的视频流。除非你显式调用 subscribeVideo
或 subscribeAllVideo
方法,否则该方法会自动停止订阅之后加入频道的任何用户的视频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
subscribeAudio
virtual int subscribeAudio(user_id_t userId) = 0;
订阅并录制频道中指定远端用户的音频。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 你想要订阅音频的远端用户的用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
- -2(
ERR_INVALID_ARGUMENT
):用户不存在或userId
无效。
- -2(
unsubscribeAudio
virtual int unsubscribeAudio(user_id_t userId) = 0;
停止订阅频道中指定远端用户的音频。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 要停止订阅音频的远端用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
- -2(
ERR_INVALID_ARGUMENT
):用户不存在或userId
无效。
- -2(
subscribeVideo
virtual int subscribeVideo(user_id_t userId, const VideoSubscriptionOptions& subscriptionOptions) = 0;
订阅频道中指定远端用户的视频。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 你想要订阅的视频所属的远端用户 ID。 |
subscriptionOptions | const VideoSubscriptionOptions& | 视频订阅选项,例如仅订阅编码后的视频数据,或订阅低码率的视频流。详见 VideoSubscriptionOptions 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
- -2(
ERR_INVALID_ARGUMENT
):用户不存在或userId
无效。
- -2(
unsubscribeVideo
virtual int unsubscribeVideo(user_id_t userId) = 0;
停止订阅频道中指定远端用户的视频。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 指定要停止订阅其视频的远端用户的用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
- -2(
ERR_INVALID_ARGUMENT
):用户不存在或userId
无效。
- -2(
setAudioVolumeIndicationParameters
virtual int setAudioVolumeIndicationParameters(int intervalInMS) = 0;
设置 onAudioVolumeIndication
回调的时间间隔。
参数
参数 | 数据类型 | 描述 |
---|---|---|
intervalInMS | int | 设置两次音量回调之间的时间间隔,单位为毫秒(默认值为 500)。
|
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setVideoMixingLayout
virtual int setVideoMixingLayout(const VideoMixingLayout& layout) = 0;
设置混合视频流的布局。
参数
参数 | 数据类型 | 描述 |
---|---|---|
layout | const VideoMixingLayout& | 混合视频流的布局。详见 VideoMixingLayout 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setRecorderConfig
virtual int setRecorderConfig(const media::MediaRecorderConfiguration& config) = 0;
设置录制器实例配置。
参数
参数 | 数据类型 | 描述 |
---|---|---|
config | const media::MediaRecorderConfiguration& | 录制器实例配置。详见 MediaRecorderConfiguration 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
enableAndUpdateVideoWatermarks
virtual int enableAndUpdateVideoWatermarks(WatermarkConfig* watermark_configs, int num) = 0;
为视频流添加水印。
参数
参数 | 数据类型 | 描述 |
---|---|---|
watermark_configs | WatermarkConfig* | 水印配置。详见 WatermarkConfig 。 |
num | int | 水印配置的数量。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
disableVideoWatermarks
virtual int disableVideoWatermarks() = 0;
禁用视频水印。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
startRecording
virtual int startRecording() = 0;
开始录制。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
stopRecording
virtual int stopRecording() = 0;
停止录制。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
startSingleRecordingByUid
virtual int startSingleRecordingByUid(user_id_t userId) = 0;
根据用户 ID 启动录制。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 要启动录制的用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
stopSingleRecordingByUid
virtual int stopSingleRecordingByUid(user_id_t userId) = 0;
通过指定用户 ID 停止录制。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 要停止录制的用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setRecorderConfigByUid
virtual int setRecorderConfigByUid(const media::MediaRecorderConfiguration& config, user_id_t userId) = 0;
根据用户 ID 设置录制配置。
参数
参数 | 数据类型 | 描述 |
---|---|---|
config | const media::MediaRecorderConfiguration& | 录制器实例的配置。详见 MediaRecorderConfiguration 。 |
userId | user_id_t | 要设置录制配置的用户 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
enableAndUpdateVideoWatermarksByUid
virtual int enableAndUpdateVideoWatermarksByUid(WatermarkConfig* watermark_configs, int num, user_id_t userId) = 0;
为指定用户的视频流添加水印。
参数
参数 | 数据类型 | 描述 |
---|---|---|
watermark_configs | WatermarkConfig* | 水印配置数组。详见 WatermarkConfig 。 |
num | int | 水印配置的数量。 |
userId | user_id_t | 你想要添加水印的视频流所属用户的 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
disableVideoWatermarksByUid
virtual int disableVideoWatermarksByUid(user_id_t userId) = 0;
根据用户 ID 关闭其视频流的水印。
参数
参数 | 数据类型 | 描述 |
---|---|---|
userId | user_id_t | 要关闭水印的视频流所属用户的 ID。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
registerRecorderEventHandle
virtual int registerRecorderEventHandle(IAgoraMediaRtcRecorderEventHandler* handler) = 0;
注册录制事件处理器。
参数
参数 | 数据类型 | 描述 |
---|---|---|
handler | IAgoraMediaRtcRecorderEventHandler* | 录制事件处理器。详见 IAgoraMediaRtcRecorderEventHandler 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
unregisterRecorderEventHandle
virtual int unregisterRecorderEventHandle(IAgoraMediaRtcRecorderEventHandler* handler) = 0;
注销录制事件处理器。
参数
参数 | 数据类型 | 描述 |
---|---|---|
handler | IAgoraMediaRtcRecorderEventHandler* | 录制事件处理器。详见 IAgoraMediaRtcRecorderEventHandler 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setGlobalLocalAccessPoint
virtual int setGlobalLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0;
设置本地 AP 模式下的全局本地接入点地址。
请在加入频道前调用该方法设置本地 AP 模式(该模式也会调用本地代理)下的全局本地接入点地址。该方法会影响同一进程中的所有录制器实例,仅需调用一次。
参数
参数 | 数据类型 | 描述 |
---|---|---|
config | const LocalAccessPointConfiguration& | 本地接入点配置。详见 LocalAccessPointConfiguration 。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
renewToken
virtual int renewToken(const char* token) = 0;
更新 。
在一段时间后会过期。你必须在以下任一情况下从服务器重新生成新的 ,并调用该方法进行更新,否则 SDK 会断开与频道的连接:
onError
回调报告错误码 ERR_TOKEN_EXPIRED(109)。- 触发
onTokenPrivilegeWillExpire
回调。 - 触发
onTokenPrivilegeDidExpire
回调。
参数
参数 | 数据类型 | 描述 |
---|---|---|
token | const char* | 指向新 的指针。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。