native_avscreen_capture_base.h
概述
声明用于运行屏幕录制通用的结构体、字符常量、枚举。
引用文件: <multimedia/player_framework/native_avscreen_capture_base.h>
库: libnative_avscreen_capture.so
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
相关模块: AVScreenCapture
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AudioCaptureInfo | OH_AudioCaptureInfo | 音频采样信息。 当audioSampleRate和audioChannels同时为0时,忽略该类型音频相关参数,不录制该类型音频数据。 |
| 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_PrivacyProtectInfo | OH_PrivacyProtectInfo | 隐私保护信息结构体。 |
| OH_AVScreenCaptureCallback | OH_AVScreenCaptureCallback | OH_AVScreenCapture中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVScreenCapture实例中,并处理回调上报的信息,以保证OH_AVScreenCapture的正常运行。 从API version 12开始,推荐使用接口OH_AVScreenCapture_OnError、OH_AVScreenCapture_OnBufferAvailable替代。 |
| OH_Rect | OH_Rect | 定义录屏界面的宽高以及画面信息。 |
| OH_AudioBuffer | OH_AudioBuffer | 定义了音频数据的大小、类型、时间戳等配置信息。 |
| OH_AVScreenCaptureHighlightConfig | OH_AVScreenCaptureHighlightConfig | 表示高亮边框的样式,包括高亮边框的模式、边框宽度和边框颜色。 |
| OH_MultiDisplayCapability | OH_MultiDisplayCapability | 多屏幕录制能力信息。多屏场景下,用户选择的多屏幕是否支持联合录制,以及联合录制的屏幕宽度和高度。 |
| OH_NativeBuffer | OH_NativeBuffer | 提供录屏的视频原始码流类。 |
| OH_AVScreenCapture | OH_AVScreenCapture | 通过OH_AVScreenCapture可以获取视频与音频的原始码流。 |
| OH_AVScreenCapture_ContentFilter | OH_AVScreenCapture_ContentFilter | 通过OH_AVScreenCapture_ContentFilter过滤音视频内容。 |
| OH_AVScreenCapture_CaptureStrategy | OH_AVScreenCapture_CaptureStrategy | 通过OH_AVScreenCapture_CaptureStrategy设置录屏策略。 |
| OH_AVScreenCapture_UserSelectionInfo | OH_AVScreenCapture_UserSelectionInfo | 通过OH_AVScreenCapture_UserSelectionInfo获取用户在授权界面(选择界面)选择的参数。 |
枚举
| 名称 | 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 | 枚举,表示视频源格式。当前仅支持RGBA格式。 |
| OH_ContainerFormatType | OH_ContainerFormatType | 枚举,表示屏幕录制生成的文件类型。 |
| OH_AVScreenCaptureStateCode | OH_AVScreenCaptureStateCode | 枚举,表示状态码。 |
| OH_AVScreenCaptureBufferType | OH_AVScreenCaptureBufferType | 枚举,表示buffer类型。 |
| OH_AVScreenCaptureFilterableAudioContent | OH_AVScreenCaptureFilterableAudioContent | 枚举,表示可过滤的音频类型。 |
| OH_AVScreenCaptureContentChangedEvent | OH_AVScreenCaptureContentChangedEvent | 枚举,表示录屏内容变更事件。 |
| OH_AVScreenCapture_FillMode | OH_AVScreenCapture_FillMode | 图像填充模式。 |
| OH_ScreenCaptureHighlightMode | OH_ScreenCaptureHighlightMode | 枚举,表示屏幕录制高亮边框的模式。 |
| OH_CapturePickerMode | OH_CapturePickerMode | 枚举,表示Picker显示模式。 |
函数
枚举类型说明
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_SCREEN_CAPTURE_STATE_PAUSED_BY_USER = 11 | 录屏已由用户暂停。 起始版本: 26.0.0 |
| OH_SCREEN_CAPTURE_STATE_RESUMED_BY_USER = 12 | 录屏已由用户恢复。 起始版本: 26.0.0 |
| OH_SCREEN_CAPTURE_STATE_PAUSED_BY_APP = 13 | 录屏已由应用程序暂停。 起始版本: 26.0.0 |
| OH_SCREEN_CAPTURE_STATE_RESUMED_BY_APP = 14 | 录屏已由应用程序恢复。 起始版本: 26.0.0 |
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_AVScreenCaptureContentChangedEvent
enum OH_AVScreenCaptureContentChangedEvent
描述
枚举,表示录屏内容变更事件。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 20
| 枚举项 | 描述 |
|---|---|
| OH_SCREEN_CAPTURE_CONTENT_HIDE = 0 | 录屏内容变为隐藏。 |
| OH_SCREEN_CAPTURE_CONTENT_VISIBLE = 1 | 录屏内容变为可见。 |
| OH_SCREEN_CAPTURE_CONTENT_UNAVAILABLE = 2 | 录屏内容状态变化为不可用,如录屏窗口关闭。 |
OH_AVScreenCapture_FillMode
enum OH_AVScreenCapture_FillMode
描述
图像填充模式。
起始版本: 20
| 枚举项 | 描述 |
|---|---|
| OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT = 0 | 保持图像原始宽高比匹配目标图像大小,若比例不一致可能存在黑边。 |
| OH_SCREENCAPTURE_FILLMODE_SCALE_TO_FILL = 1 | 图像拉伸匹配目标图像大小,若比例不一致可能会导致图像变形。 |
OH_ScreenCaptureHighlightMode
enum OH_ScreenCaptureHighlightMode
描述
枚举,表示屏幕录制高亮边框的模式。
起始版本: 22
| 枚举项 | 描述 |
|---|---|
| OH_HIGHLIGHT_MODE_CLOSED = 0 | 默认模式,用方形全包边框高亮显示录制区域。 |
| OH_HIGHLIGHT_MODE_CORNER_WRAP = 1 | 用四角包裹边框高亮显示录制区域。 |
OH_CapturePickerMode
enum OH_CapturePickerMode
描述
枚举,表示Picker显示模式。
起始版本: 22
| 枚举项 | 描述 |
|---|---|
| OH_CAPTURE_PICKER_MODE_WINDOW_ONLY = 0 | 仅显示窗口模式。 |
| OH_CAPTURE_PICKER_MODE_SCREEN_ONLY = 1 | 仅显示屏幕模式。 |
| OH_CAPTURE_PICKER_MODE_SCREEN_AND_WINDOW = 2 | 显示屏幕和窗口模式(默认模式)。 |
函数说明
OH_AVScreenCaptureOnError()
typedef void (*OH_AVScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode)
描述
当OH_AVScreenCapture实例运行出错时,将调用函数指针。
从API version 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 version 12开始,推荐使用接口OH_AVScreenCapture_OnBufferAvailable替代。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| bool isReady | 音频缓存区是否可用。true表示音频缓存区可用,false表示音频缓存区不可用。 |
| OH_AudioCaptureSourceType type | 音频源类型。 |
OH_AVScreenCaptureOnVideoBufferAvailable()
typedef void (*OH_AVScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady)
描述
当OH_AVScreenCapture实例操作期间视频缓存区可用时,将调用函数指针。
从API version 12开始,推荐使用接口OH_AVScreenCapture_OnBufferAvailable替代。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture *capture | 指向OH_AVScreenCapture实例的指针。 |
| bool isReady | 视频缓存区是否可用。true表示视频缓存区可用,false表示视频缓存区不可用。 |
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 | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |
OH_AVScreenCapture_OnCaptureContentChanged()
typedef void (*OH_AVScreenCapture_OnCaptureContentChanged)(OH_AVScreenCapture* capture, OH_AVScreenCaptureContentChangedEvent event, OH_Rect* area, void *userData)
描述
当OH_AVScreenCapture实例操作期间录屏内容变化时,将调用函数指针。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture* capture | 指向OH_AVScreenCapture实例的指针。 |
| OH_AVScreenCaptureContentChangedEvent event | 录屏内容变更事件。 |
| OH_Rect* area | 录屏内容可见时,对应位置信息。 |
| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 |
OH_AVScreenCapture_OnUserSelected()
typedef void (*OH_AVScreenCapture_OnUserSelected)(OH_AVScreenCapture* capture, OH_AVScreenCapture_UserSelectionInfo* selections, void *userData)
描述
当用户在授权界面(选择界面)选择参数时,功能接口将参数返回给应用程序。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture* capture | 指向OH_AVScreenCapture实例的指针。 |
| OH_AVScreenCapture_UserSelectionInfo* selections | 用户在授权界面选择的录制参数信息。 |
| void *userData | 指向用户数据的指针。 |
OH_AVScreenCapture_OnPrivacyProtect()
typedef void (*OH_AVScreenCapture_OnPrivacyProtect)(OH_AVScreenCapture* capture, OH_PrivacyProtectInfo* privacyProtect, void *userData)
描述
当OH_AVScreenCapture实例在运行过程中发生隐私保护事件时,函数指针将被调用。
起始版本: 24
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVScreenCapture* capture | 指向OH_AVScreenCapture实例的指针。 |
| OH_PrivacyProtectInfo* privacyProtect | 隐私保护信息指针。 |
| void *userData | 指向用户数据的指针。 |