04fceec9创建于 2025年4月27日历史提交

avrecorder.h

概述

定义AVRecorder接口。应用可使用Media AVRecorder提供的接口录制媒体数据。

库: libavrecorder.so

引用文件: <multimedia/player_framework/avrecorder.h>

系统能力: SystemCapability.Multimedia.Media.AVRecorder

起始版本: 18

相关模块:AVRecorder

汇总

函数

名称 描述
OH_AVRecorder * OH_AVRecorder_Create (void) 创建AVRecorder实例。调用成功之后进入AVRECORDER_IDLE状态。
OH_AVErrCode OH_AVRecorder_Prepare (OH_AVRecorder *recorder, OH_AVRecorder_Config *config) 配置AVRecorder参数,准备录制。必须在OH_AVRecorder_Start成功触发之后调用,调用成功之后进入AVRECORDER_PREPARED状态。
OH_AVErrCode OH_AVRecorder_GetAVRecorderConfig (OH_AVRecorder *recorder, OH_AVRecorder_Config **config) 获取当前的录制参数。此接口必须在录制准备完成后调用。传入的 *config 必须为 nullptr,由框架层统一分配和释放内存,以避免内存管理混乱,防止内存泄漏或重复释放等问题。
OH_AVErrCode OH_AVRecorder_GetInputSurface (OH_AVRecorder *recorder, OHNativeWindow **window) 获取输入Surface。必须在OH_AVRecorder_Prepare成功触发之后,OH_AVRecorder_Start之前调用。
OH_AVErrCode OH_AVRecorder_UpdateRotation (OH_AVRecorder *recorder, int32_t rotation) 更新视频旋转角度。必须在OH_AVRecorder_Prepare成功触发之后,OH_AVRecorder_Start之前调用。
OH_AVErrCode OH_AVRecorder_Start (OH_AVRecorder *recorder) 开始录制。必须在OH_AVRecorder_Prepare成功触发之后调用,调用成功之后进入AVRECORDER_STARTED状态。
OH_AVErrCode OH_AVRecorder_Pause (OH_AVRecorder *recorder) 暂停录制。必须在OH_AVRecorder_Start成功触发之后,处于AVRECORDER_STARTED状态时调用,调用成功之后进入AVRECORDER_PAUSED状态。
OH_AVErrCode OH_AVRecorder_Resume (OH_AVRecorder *recorder) 恢复录制。必须在OH_AVRecorder_Pause成功触发之后,处于PAUSED状态时调用,调用成功之后重新进入AVRECORDER_STARTED状态。
OH_AVErrCode OH_AVRecorder_Stop (OH_AVRecorder *recorder) 停止录制。必须在OH_AVRecorder_Start成功触发之后调用,调用成功之后进入AVRECORDER_STOPPED状态。
OH_AVErrCode OH_AVRecorder_Reset (OH_AVRecorder *recorder) 重置录制状态。必须在非AVRECORDER_RELEASED状态下调用,调用成功之后进入AVRECORDER_IDLE状态。
OH_AVErrCode OH_AVRecorder_Release (OH_AVRecorder *recorder) 释放录制资源。调用成功之后进入AVRECORDER_RELEASED状态。调用此接口释放录制资源后,recorder 内存将释放,应用层需要显式地将 recorder 指针置空,避免访问野指针。
OH_AVErrCode OH_AVRecorder_GetAvailableEncoder (OH_AVRecorder *recorder, OH_AVRecorder_EncoderInfo **info, int32_t *length) 获取 AVRecorder 可用的编码器和编码器信息。参数 *info 必须为 nullptr,由框架层统一分配和释放内存,以避免内存管理混乱,防止内存泄漏或重复释放等问题。
OH_AVErrCode OH_AVRecorder_SetStateCallback (OH_AVRecorder *recorder, OH_AVRecorder_OnStateChange callback, void *userData) 设置状态回调函数,以便应用能够响应AVRecorder生成的状态变化事件。此接口必须在OH_AVRecorder_Start调用之前调用。
OH_AVErrCode OH_AVRecorder_SetErrorCallback (OH_AVRecorder *recorder, OH_AVRecorder_OnError callback, void *userData) 设置错误回调函数,以便应用能够响应AVRecorder生成的错误事件。此接口必须在OH_AVRecorder_Start调用之前调用。
OH_AVEOH_AVErrCoderrCode OH_AVRecorder_SetUriCallback (OH_AVRecorder *recorder, OH_AVRecorder_OnUri callback, void *userData) 设置 URI 回调函数,以便应用能够响应AVRecorder生成的 URI 事件。此接口必须在 OH_AVRecorder_Start 调用之前调用。