• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# avrecorder.h
2
3
4## 概述
5
6定义AVRecorder接口。应用可使用Media AVRecorder提供的接口录制媒体数据。
7
8**库:** libavrecorder.so
9
10**引用文件:** <multimedia/player_framework/avrecorder.h>
11
12**系统能力:** SystemCapability.Multimedia.Media.AVRecorder
13
14**起始版本:** 18
15
16**相关模块:**[AVRecorder](_a_v_recorder.md)
17
18
19## 汇总
20
21
22### 函数
23
24| 名称 | 描述 |
25| -------- | -------- |
26| [OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \* [OH_AVRecorder_Create](_a_v_recorder.md#oh_avrecorder_create) (void) | 创建AVRecorder实例。调用成功之后进入AVRECORDER_IDLE状态。 |
27| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Prepare](_a_v_recorder.md#oh_avrecorder_prepare) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_Config](_o_h___a_v_recorder___config.md) \*config) | 配置AVRecorder参数,准备录制。必须在[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)成功触发之后调用,调用成功之后进入AVRECORDER_PREPARED状态。 |
28| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_GetAVRecorderConfig](_a_v_recorder.md#oh_avrecorder_getavrecorderconfig) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_Config](_o_h___a_v_recorder___config.md) \*\*config) | 获取当前的录制参数。此接口必须在录制准备完成后调用。传入的 \*config 必须为 nullptr,由框架层统一分配和释放内存,以避免内存管理混乱,防止内存泄漏或重复释放等问题。 |
29| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_GetInputSurface](_a_v_recorder.md#oh_avrecorder_getinputsurface) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, OHNativeWindow \*\*window) | 获取输入Surface。必须在[OH_AVRecorder_Prepare](_a_v_recorder.md#oh_avrecorder_prepare)成功触发之后,[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)之前调用。 |
30| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_UpdateRotation](_a_v_recorder.md#oh_avrecorder_updaterotation) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, int32_t rotation) | 更新视频旋转角度。必须在[OH_AVRecorder_Prepare](_a_v_recorder.md#oh_avrecorder_prepare)成功触发之后,[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)之前调用。 |
31| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 开始录制。必须在[OH_AVRecorder_Prepare](_a_v_recorder.md#oh_avrecorder_prepare)成功触发之后调用,调用成功之后进入AVRECORDER_STARTED状态。 |
32| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Pause](_a_v_recorder.md#oh_avrecorder_pause) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 暂停录制。必须在[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)成功触发之后,处于AVRECORDER_STARTED状态时调用,调用成功之后进入AVRECORDER_PAUSED状态。 |
33| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Resume](_a_v_recorder.md#oh_avrecorder_resume) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 恢复录制。必须在[OH_AVRecorder_Pause](_a_v_recorder.md#oh_avrecorder_pause)成功触发之后,处于PAUSED状态时调用,调用成功之后重新进入AVRECORDER_STARTED状态。 |
34| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Stop](_a_v_recorder.md#oh_avrecorder_stop) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 停止录制。必须在[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)成功触发之后调用,调用成功之后进入AVRECORDER_STOPPED状态。 |
35| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Reset](_a_v_recorder.md#oh_avrecorder_reset) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 重置录制状态。必须在非AVRECORDER_RELEASED状态下调用,调用成功之后进入AVRECORDER_IDLE状态。 |
36| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_Release](_a_v_recorder.md#oh_avrecorder_release) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder) | 释放录制资源。调用成功之后进入AVRECORDER_RELEASED状态。调用此接口释放录制资源后,recorder 内存将释放,应用层需要显式地将 recorder 指针置空,避免访问野指针。 |
37| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_GetAvailableEncoder](_a_v_recorder.md#oh_avrecorder_getavailableencoder) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_EncoderInfo](_o_h___a_v_recorder___encoder_info.md) \*\*info, int32_t \*length) | 获取 AVRecorder 可用的编码器和编码器信息。参数 \*info 必须为 nullptr,由框架层统一分配和释放内存,以避免内存管理混乱,防止内存泄漏或重复释放等问题。 |
38| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_SetStateCallback](_a_v_recorder.md#oh_avrecorder_setstatecallback) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_OnStateChange](_a_v_recorder.md#oh_avrecorder_onstatechange) callback, void \*userData) | 设置状态回调函数,以便应用能够响应AVRecorder生成的状态变化事件。此接口必须在[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)调用之前调用。 |
39| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVRecorder_SetErrorCallback](_a_v_recorder.md#oh_avrecorder_seterrorcallback) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_OnError](_a_v_recorder.md#oh_avrecorder_onerror) callback, void \*userData) | 设置错误回调函数,以便应用能够响应AVRecorder生成的错误事件。此接口必须在[OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start)调用之前调用。 |
40| OH_AVE[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode)rrCode [OH_AVRecorder_SetUriCallback](_a_v_recorder.md#oh_avrecorder_seturicallback) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_OnUri](_a_v_recorder.md#oh_avrecorder_onuri) callback, void \*userData) | 设置 URI 回调函数,以便应用能够响应AVRecorder生成的 URI 事件。此接口必须在 [OH_AVRecorder_Start](_a_v_recorder.md#oh_avrecorder_start) 调用之前调用。 |
41