AgoraMediaRecorder Class Reference

Inherits from NSObject
Declared in AgoraRtcEngineKit.h

Overview

AgoraMediaRecorder 接口,用于在客户端录制以下内容:

  • 本地麦克风采集且经 SDK 编码为 AAC 格式的音频。
  • 本地摄像头采集且经 SDK 编码的视频。

Note: 通信场景下,如果频道内有 SDK 版本低于 3.0.0 的用户,该功能不可用。

+ sharedMediaRecorderWithRtcEngine:delegate:

创建 AgoraMediaRecorder 实例

+ (instancetype _Nonnull)sharedMediaRecorderWithRtcEngine:(AgoraRtcEngineKit *_Nonnull)engine delegate:(id<AgoraMediaRecorderDelegate> _Nullable)delegate

Parameters

engine

AgoraRtcEngineKit

delegate

AgoraMediaRecorderDelegate

Return Value

AgoraMediaRecorder

Discussion

Note: 该方法需要在创建 AgoraRtcEngineKit 后调用。

Declared In

AgoraRtcEngineKit.h

+ destroy

销毁 AgoraMediaRecorder 实例

+ (void)destroy

Discussion

该方法释放 AgoraMediaRecorder 对象使用的 AgoraRtcEngineKit 对象和其他所有资源。 调用该方法后,如果需要再次开启录制,需要重新调用 sharedMediaRecorderWithRtcEngine 获取 AgoraMediaRecorder 对象。

Declared In

AgoraRtcEngineKit.h

– enableMainQueueDispatch:

分发/不分发回调至主队列

- (int)enableMainQueueDispatch:(BOOL)enabled

Parameters

enabled
  • YES: 分发回调方法到主队列
  • NO: 不分发回调方法到主队列

Return Value

  • 0: 方法调用成功
  • < 0: 方法调用失败

Discussion

如果不分发回调方法到主队列, App 应将 UI 操作分发到主队列。

Declared In

AgoraRtcEngineKit.h

– startRecording:

开启本地音视频流录制。

- (int)startRecording:(AgoraMediaRecorderConfiguration *_Nonnull)config

Parameters

config

音视频流录制配置。详见 AgoraMediaRecorderConfiguration

Return Value

  • 0: 方法调用成功。
  • < 0: 方法调用失败:

    • -2(AgoraErrorCodeInvalidArgument): 参数无效。请确保:

      • 指定的录制文件保存路径正确且可写。
      • 指定的录制文件格式正确。
      • 设置的最大录制时长正确。
    • -4(AgoraErrorCodeNotSupported): AgoraRtcEngineKit 当前状态不支持该操作。可能因为录制正在进行中或录制出错停止。

    • -7(AgoraErrorCodeNotInitialized): AgoraRtcEngineKit 尚未初始化就调用方法。请确认在调用 startRecording 前已调用 sharedMediaRecorderWithRtcEngine

Discussion

成功获取 AgoraMediaRecorder 对象后,你可以调用该方法开启本地音视频流录制。

该方法录制的是本地麦克风采集的、编码为 AAC 格式的音频或本地摄像头采集的、编码后的视频。只有当检测到可录制的音视频流时,才能成功生成录制文件; 当没有可录制的音视频或录制中的音视频流中断超过 5 秒后,SDK 会停止录制, 并触发 stateDidChanged (AgoraMediaRecorderStateError, AgoraMediaRecorderErrorCodeNoStream)。

Note: 该方法需要在加入频道后调用。

Declared In

AgoraRtcEngineKit.h

– stopRecording

停止本地音视频流录制。

- (int)stopRecording

Return Value

Discussion

Note: 调用 startRecording 后,如果要停止录制,必须调用 stopRecording;否则,生成的录制文件可能无法正常播放。

Declared In

AgoraRtcEngineKit.h