native_avscreen_capture_base.h
概述
声明用于运行屏幕录制通用的结构体、字符常量、枚举。
库: libnative_avscreen_capture.so
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
相关模块: AVScreenCapture
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AudioCaptureInfo | OH_AudioCaptureInfo | 音频采样信息。 当audioSampleRate和audioChannels同时为0时,忽略该类型音频相关参数,不录制该类型音频数据。 |
| OH_NativeBuffer | OH_NativeBuffer | 提供录屏的视频原始码流类。 |
| OH_AVScreenCapture | OH_AVScreenCapture | 通过OH_AVScreenCapture可以获取视频与音频的原始码流。 |
| OH_AVScreenCapture_ContentFilter | OH_AVScreenCapture_ContentFilter | 通过OH_AVScreenCapture_ContentFilter过滤音视频内容。 |
| OH_AudioEncInfo | OH_AudioEncInfo | 音频编码信息。 |
| OH_AudioInfo | OH_AudioInfo | 音频信息。 同时采集音频麦克风和音频内录数据时,两路音频的audioSampleRate和audioChannels采样参数需要相同。 |
| OH_VideoCaptureInfo | OH_VideoCaptureInfo | 视频录制信息,当videoFrameWidth和videoFrameHeight同时为0时,忽略视频相关参数不录制屏幕数据。 |
| OH_VideoEncInfo | OH_VideoEncInfo | 视频编码参数。 |
| OH_VideoInfo | OH_VideoInfo | 视频信息。 |
| OH_RecorderInfo | OH_RecorderInfo | 录制文件信息。 |
| OH_AVScreenCaptureConfig | OH_AVScreenCaptureConfig | 屏幕录制配置参数。 |
| OH_AVScreenCaptureCallback | OH_AVScreenCaptureCallback | OH_AVScreenCapture中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVScreenCapture实例中, 并处理回调上报的信息,以保证OH_AVScreenCapture的正常运行。 从API 12开始,推荐使用接口OH_AVScreenCapture_OnError、OH_AVScreenCapture_OnBufferAvailable替代。 |
| OH_Rect | OH_Rect | 定义录屏界面的宽高以及画面信息。 |
| OH_AudioBuffer | OH_AudioBuffer | 定义了音频数据的大小、类型、时间戳等配置信息。 |
枚举
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_CaptureMode | OH_CaptureMode | 枚举,表示屏幕录制的不同模式。 |
| OH_AudioCaptureSourceType | OH_AudioCaptureSourceType | 枚举,表示屏幕录制时的音频源类型。 |
| OH_AudioCodecFormat | OH_AudioCodecFormat | 枚举,表示音频编码格式。 |
| OH_VideoCodecFormat | OH_VideoCodecFormat | 枚举,表示视频编码格式。 |
| OH_DataType | OH_DataType | 枚举,表示屏幕录制流的数据格式。 |
| OH_VideoSourceType | OH_VideoSourceType | 枚举,表示视频源格式。 |
| OH_ContainerFormatType | OH_ContainerFormatType | 枚举,表示屏幕录制生成的文件类型。 |
| OH_AVScreenCaptureStateCode | OH_AVScreenCaptureStateCode | 枚举,表示状态码。 |
| OH_AVScreenCaptureBufferType | OH_AVScreenCaptureBufferType | 枚举,表示buffer类型。 |
| OH_AVScreenCaptureFilterableAudioContent | OH_AVScreenCaptureFilterableAudioContent | 枚举,表示可过滤的音频类型。 |
函数
枚举类型说明
OH_CaptureMode
enum OH_CaptureMode
描述
枚举,表示屏幕录制的不同模式。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_CAPTURE_HOME_SCREEN = 0 | 录制主屏幕。 |
| OH_CAPTURE_SPECIFIED_SCREEN = 1 | 录制指定屏幕。 |
| OH_CAPTURE_SPECIFIED_WINDOW = 2 | 录制指定窗口。 |
| OH_CAPTURE_INVAILD = -1 | 无效模式。 |
OH_AudioCaptureSourceType
enum OH_AudioCaptureSourceType
描述
枚举,表示屏幕录制时的音频源类型。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_SOURCE_INVALID = -1 | 无效音频源。 |
| OH_SOURCE_DEFAULT = 0 | 默认音频源,默认为麦克风。 |
| OH_MIC = 1 | 麦克风录制的外部音频流。 |
| OH_ALL_PLAYBACK = 2 | 系统播放的所有内部音频流。 |
| OH_APP_PLAYBACK = 3 | 指定应用播放的内部音频流。 |
OH_AudioCodecFormat
enum OH_AudioCodecFormat
描述
枚举,表示音频编码格式。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_AUDIO_DEFAULT = 0 | 默认音频编码,默认为AAC_LC。 |
| OH_AAC_LC = 3 | AAC_LC音频编码。 |
| OH_AUDIO_CODEC_FORMAT_BUTT | 无效格式。 |
OH_VideoCodecFormat
enum OH_VideoCodecFormat
描述
枚举,表示视频编码格式。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_VIDEO_DEFAULT = 0 | 默认视频编码,默认为H.264。 |
| OH_H264 = 2 | H.264。 |
| OH_H265 = 4 | H.265/HEVC。 |
| OH_MPEG4 = 6 | MPEG4。 |
| OH_VP8 = 8 | VP8。 |
| OH_VP9 = 10 | VP9。 |
| OH_VIDEO_CODEC_FORMAT_BUTT | 无效格式。 |
OH_DataType
enum OH_DataType
描述
枚举,表示屏幕录制流的数据格式。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_ORIGINAL_STREAM = 0 | 原始流格式,如YUV/RGBA/PCM等。 |
| OH_ENCODED_STREAM = 1 | 编码格式,如H264/AAC等。当前版本暂不支持。 |
| OH_CAPTURE_FILE = 2 | 保存文件格式,支持mp4。 |
| OH_INVAILD = -1 | 无效格式。 |
OH_VideoSourceType
enum OH_VideoSourceType
描述
枚举,表示视频源格式。当前仅支持RGBA格式。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| OH_VIDEO_SOURCE_SURFACE_YUV = 0 | YUV格式。当前版本暂不支持。 |
| OH_VIDEO_SOURCE_SURFACE_ES | raw格式。当前版本暂不支持。 |
| OH_VIDEO_SOURCE_SURFACE_RGBA | RGBA格式。 |
| OH_VIDEO_SOURCE_BUTT | 无效格式。 |
OH_ContainerFormatType
enum OH_ContainerFormatType
描述
枚举,表示屏幕录制生成的文件类型。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
| 枚举项 | 描述 |
|---|---|
| CFT_MPEG_4A = 0 | 音频格式 m4a。 |
| CFT_MPEG_4 = 1 | 视频格式 mp4。 |
OH_AVScreenCaptureStateCode
enum OH_AVScreenCaptureStateCode
描述
枚举,表示状态码。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
| 枚举项 | 描述 |
|---|---|
| OH_SCREEN_CAPTURE_STATE_STARTED = 0 | 已开始录屏。 |
| OH_SCREEN_CAPTURE_STATE_CANCELED = 1 | 已取消录屏。 |
| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER = 2 | 已停止录屏。 |
| OH_SCREEN_CAPTURE_STATE_INTERRUPTED_BY_OTHER = 3 | 录屏被其他录屏中断。 |
| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_CALL = 4 | 录屏被通话中断。 |
| OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE = 5 | 麦克风不可用。 |
| OH_SCREEN_CAPTURE_STATE_MIC_MUTED_BY_USER = 6 | 麦克风被静音。 |
| OH_SCREEN_CAPTURE_STATE_MIC_UNMUTED_BY_USER = 7 | 麦克风被取消静音。 |
| OH_SCREEN_CAPTURE_STATE_ENTER_PRIVATE_SCENE = 8 | 进入隐私界面。 |
| OH_SCREEN_CAPTURE_STATE_EXIT_PRIVATE_SCENE = 9 | 隐私界面退出。 |
| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHES = 10 | 系统用户切换,录屏中断。 |
OH_AVScreenCaptureBufferType
enum OH_AVScreenCaptureBufferType
描述
枚举,表示buffer类型。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
| 枚举项 | 描述 |
|---|---|
| OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO = 0 | 视频数据。 |
| OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER = 1 | 内录音频数据。 |
| OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC = 2 | 麦克风音频数据。 |
OH_AVScreenCaptureFilterableAudioContent
enum OH_AVScreenCaptureFilterableAudioContent
描述
枚举,表示可过滤的音频类型。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
| 枚举项 | 描述 |
|---|---|
| OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO = 0 | 通知音。 |
| OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO = 1 | 应用自身声音。 |
函数说明
OH_AVScreenCaptureOnError()
typedef void (*OH_AVScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode)
描述
当OH_AVScreenCapture实例运行出错时,将调用函数指针。
从API 12开始,推荐使用接口OH_AVScreenCapture_OnError替代。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| int32_t errorCode | 指定错误码。 |
OH_AVScreenCaptureOnAudioBufferAvailable()
typedef void (*OH_AVScreenCaptureOnAudioBufferAvailable)(OH_AVScreenCapture *capture, bool isReady,OH_AudioCaptureSourceType type)
描述
当OH_AVScreenCapture实例操作期间音频缓存区可用时,将调用函数指针。
从API 12开始,推荐使用接口OH_AVScreenCapture_OnBufferAvailable替代。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| bool isReady | 音频缓存区是否可用。 |
| OH_AudioCaptureSourceType type | 音频源类型。 |
OH_AVScreenCaptureOnVideoBufferAvailable()
typedef void (*OH_AVScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady)
描述
当OH_AVScreenCapture实例操作期间视频缓存区可用时,将调用函数指针。
从API 12开始,推荐使用接口OH_AVScreenCapture_OnBufferAvailable替代。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| bool isReady | 视频缓存区是否可用。 |
OH_AVScreenCapture_OnStateChange()
typedef void (*OH_AVScreenCapture_OnStateChange)(struct OH_AVScreenCapture *capture,OH_AVScreenCaptureStateCode stateCode, void *userData)
描述
当OH_AVScreenCapture实例操作期间发生状态变更时,将调用函数指针。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| struct OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| OH_AVScreenCaptureStateCode stateCode | 指定状态码。 |
| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |
OH_AVScreenCapture_OnError()
typedef void (*OH_AVScreenCapture_OnError)(OH_AVScreenCapture *capture, int32_t errorCode, void *userData)
描述
当OH_AVScreenCapture实例操作期间发生错误时,将调用函数指针。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| int32_t errorCode | 指定错误码。 |
| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |
OH_AVScreenCapture_OnBufferAvailable()
typedef void (*OH_AVScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture, OH_AVBuffer *buffer,OH_AVScreenCaptureBufferType bufferType, int64_t timestamp, void *userData)
描述
当OH_AVScreenCapture实例操作期间音频或视频缓存区可用时,将调用该函数指针。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| OH_AVBuffer *buffer | 指向OH_AVBuffer缓存区实例的指针,该回调方法执行结束返回后,数据缓存区不再有效。 |
| OH_AVScreenCaptureBufferType bufferType | 可用缓存区的数据类型。 |
| int64_t timestamp | 时间戳,单位纳秒。 |
| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |
OH_AVScreenCapture_OnDisplaySelected()
typedef void (*OH_AVScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId, void *userData)
描述
当录屏事件开始时,将调用函数指针。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 15
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| uint64_t displayId | 录屏屏幕的Id。 |
| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |