1# avrecorder_base.h 2 3 4## 概述 5 6定义了媒体 AVRecorder 的结构体和枚举。 7 8**库:** libavrecorder.so 9 10**引用文件:** <multimedia/player_framework/avrecorder_base.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| struct [OH_AVRecorder_Profile](_o_h___a_v_recorder___profile.md) | 定义音视频录制的详细参数。<br/>可以通过参数设置选择只录制音频或只录制视频:当 audioBitrate 或 audioChannels 为 0 时,不录制音频;当 videoFrameWidth 或 videoFrameHeight 为 0 时,不录制视频。 | 27| struct [OH_AVRecorder_Location](_o_h___a_v_recorder___location.md) | 提供媒体资源的地理位置信息。 | 28| struct [OH_AVRecorder_MetadataTemplate](_o_h___a_v_recorder___metadata_template.md) | 定义元数据的基本模板。 | 29| struct [OH_AVRecorder_Metadata](_o_h___a_v_recorder___metadata.md) | 设置元数据信息。 | 30| struct [OH_AVRecorder_Config](_o_h___a_v_recorder___config.md) | 提供媒体AVRecorder的配置定义。 | 31| struct [OH_AVRecorder_Range](_o_h___a_v_recorder___range.md) | 表示一个类型的范围。 | 32| struct [OH_AVRecorder_EncoderInfo](_o_h___a_v_recorder___encoder_info.md) | 提供编码器信息。 | 33 34 35### 类型定义 36 37| 名称 | 描述 | 38| -------- | -------- | 39| typedef struct [OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) [OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) | 初始化AVRecorder。 | 40| typedef enum [OH_AVRecorder_AudioSourceType](_a_v_recorder.md#oh_avrecorder_audiosourcetype-1) [OH_AVRecorder_AudioSourceType](_a_v_recorder.md#oh_avrecorder_audiosourcetype) | AVRecorder的音频源类型。 | 41| typedef enum [OH_AVRecorder_VideoSourceType](_a_v_recorder.md#oh_avrecorder_videosourcetype-1) [OH_AVRecorder_VideoSourceType](_a_v_recorder.md#oh_avrecorder_videosourcetype) | AVRecorder的视频源类型。 | 42| typedef enum [OH_AVRecorder_CodecMimeType](_a_v_recorder.md#oh_avrecorder_codecmimetype-1) [OH_AVRecorder_CodecMimeType](_a_v_recorder.md#oh_avrecorder_codecmimetype) | 枚举编码器 MIME 类型。 | 43| typedef enum [OH_AVRecorder_ContainerFormatType](_a_v_recorder.md#oh_avrecorder_containerformattype-1) [OH_AVRecorder_ContainerFormatType](_a_v_recorder.md#oh_avrecorder_containerformattype) | 枚举容器格式类型(容器格式类型的缩写是 CFT)。 | 44| typedef enum [OH_AVRecorder_State](_a_v_recorder.md#oh_avrecorder_state-1) [OH_AVRecorder_State](_a_v_recorder.md#oh_avrecorder_state) | AVRecorder状态。 | 45| typedef enum [OH_AVRecorder_StateChangeReason](_a_v_recorder.md#oh_avrecorder_statechangereason-1) [OH_AVRecorder_StateChangeReason](_a_v_recorder.md#oh_avrecorder_statechangereason) | AVRecorder状态变化的原因。 | 46| typedef enum [OH_AVRecorder_FileGenerationMode](_a_v_recorder.md#oh_avrecorder_filegenerationmode-1) [OH_AVRecorder_FileGenerationMode](_a_v_recorder.md#oh_avrecorder_filegenerationmode) | 创建录制文件的模式。 | 47| typedef struct [OH_AVRecorder_Profile](_o_h___a_v_recorder___profile.md) [OH_AVRecorder_Profile](_a_v_recorder.md#oh_avrecorder_profile) | 定义音视频录制的详细参数。<br/>可以通过参数设置选择只录制音频或只录制视频:当 audioBitrate 或 audioChannels 为 0 时,不录制音频;当 videoFrameWidth 或 videoFrameHeight 为 0 时,不录制视频。 | 48| typedef struct [OH_AVRecorder_Location](_o_h___a_v_recorder___location.md) [OH_AVRecorder_Location](_a_v_recorder.md#oh_avrecorder_location) | 提供媒体资源的地理位置信息。 | 49| typedef struct [OH_AVRecorder_MetadataTemplate](_o_h___a_v_recorder___metadata_template.md) [OH_AVRecorder_MetadataTemplate](_a_v_recorder.md#oh_avrecorder_metadatatemplate) | 定义元数据的基本模板。 | 50| typedef struct [OH_AVRecorder_Metadata](_o_h___a_v_recorder___metadata.md) [OH_AVRecorder_Metadata](_a_v_recorder.md#oh_avrecorder_metadata) | 设置元数据信息。 | 51| typedef struct [OH_AVRecorder_Config](_o_h___a_v_recorder___config.md) [OH_AVRecorder_Config](_a_v_recorder.md#oh_avrecorder_config) | 提供媒体AVRecorder的配置定义。 | 52| typedef struct [OH_AVRecorder_Range](_o_h___a_v_recorder___range.md) [OH_AVRecorder_Range](_a_v_recorder.md#oh_avrecorder_range) | 表示一个类型的范围。 | 53| typedef struct [OH_AVRecorder_EncoderInfo](_o_h___a_v_recorder___encoder_info.md) [OH_AVRecorder_EncoderInfo](_a_v_recorder.md#oh_avrecorder_encoderinfo) | 提供编码器信息。 | 54| typedef void(\* [OH_AVRecorder_OnStateChange](_a_v_recorder.md#oh_avrecorder_onstatechange)) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_AVRecorder_State](_a_v_recorder.md#oh_avrecorder_state) state, [OH_AVRecorder_StateChangeReason](_a_v_recorder.md#oh_avrecorder_statechangereason) reason, void \*userData) | 当录制状态发生变化时调用。 | 55| typedef void(\* [OH_AVRecorder_OnError](_a_v_recorder.md#oh_avrecorder_onerror)) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, int32_t errorCode, const char \*errorMsg, void \*userData) | 当录制过程中发生错误时调用。 | 56| typedef void(\* [OH_AVRecorder_OnUri](_a_v_recorder.md#oh_avrecorder_onuri)) ([OH_AVRecorder](_a_v_recorder.md#oh_avrecorder) \*recorder, [OH_MediaAsset](../apis-media-library-kit/_media_asset_manager.md#oh_mediaasset) \*asset, void \*userData) | 当录制在 OH_AVRecorder_FileGenerationMode.AVRECORDER_AUTO_CREATE_CAMERA_SCENE 模式下时调用。 | 57 58 59### 枚举 60 61| 名称 | 描述 | 62| -------- | -------- | 63| [OH_AVRecorder_AudioSourceType](_a_v_recorder.md#oh_avrecorder_audiosourcetype-1) {<br/>AVRECORDER_DEFAULT = 0,<br/>AVRECORDER_MIC = 1,<br/>AVRECORDER_VOICE_RECOGNITION = 2,<br/>AVRECORDER_VOICE_COMMUNICATION = 7,<br/>AVRECORDER_VOICE_MESSAGE = 10,<br/>AVRECORDER_CAMCORDER = 13<br/>} | AVRecorder的音频源类型。 | 64| [OH_AVRecorder_VideoSourceType](_a_v_recorder.md#oh_avrecorder_videosourcetype-1) {<br/>AVRECORDER_SURFACE_YUV = 0,<br/>AVRECORDER_SURFACE_ES = 1<br/>} | AVRecorder的视频源类型。 | 65| [OH_AVRecorder_CodecMimeType](_a_v_recorder.md#oh_avrecorder_codecmimetype-1) {<br/>AVRECORDER_VIDEO_AVC = 2,<br/>AVRECORDER_AUDIO_AAC = 3,<br/>AVRECORDER_AUDIO_MP3 = 4,<br/>AVRECORDER_AUDIO_G711MU = 5,<br/>AVRECORDER_VIDEO_MPEG4 = 6,<br/>AVRECORDER_VIDEO_HEVC = 8,<br/>AVRECORDER_AUDIO_AMR_NB = 9,<br/>AVRECORDER_AUDIO_AMR_WB = 10<br/>} | 枚举编码器 MIME 类型。 | 66| [OH_AVRecorder_ContainerFormatType](_a_v_recorder.md#oh_avrecorder_containerformattype-1) {<br/>AVRECORDER_CFT_MPEG_4 = 2,<br/>AVRECORDER_CFT_MPEG_4A = 6,<br/>AVRECORDER_CFT_AMR = 8,<br/>AVRECORDER_CFT_MP3 = 9,<br/>AVRECORDER_CFT_WAV = 10<br/>} | 枚举容器格式类型(容器格式类型的缩写是 CFT)。 | 67| [OH_AVRecorder_State](_a_v_recorder.md#oh_avrecorder_state-1) {<br/>AVRECORDER_IDLE = 0,<br/>AVRECORDER_PREPARED = 1,<br/>AVRECORDER_STARTED = 2,<br/>AVRECORDER_PAUSED = 3,<br/>AVRECORDER_STOPPED = 4,<br/>AVRECORDER_RELEASED = 5,<br/>AVRECORDER_ERROR = 6<br/>} | AVRecorder状态。 | 68| [OH_AVRecorder_StateChangeReason](_a_v_recorder.md#oh_avrecorder_statechangereason-1) {<br/>AVRECORDER_USER = 0,<br/>AVRECORDER_BACKGROUND = 1<br/>} | AVRecorder状态变化的原因。 | 69| [OH_AVRecorder_FileGenerationMode](_a_v_recorder.md#oh_avrecorder_filegenerationmode-1) {<br/>AVRECORDER_APP_CREATE = 0,<br/>AVRECORDER_AUTO_CREATE_CAMERA_SCENE = 1<br/>} | 创建录制文件的模式。 | 70