1# native_avscreen_capture_base.h 2<!--Kit: Media Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @zzs_911--> 5<!--Designer: @stupig001--> 6<!--Tester: @xdlinc--> 7<!--Adviser: @zengyawen--> 8 9## 概述 10 11声明用于运行屏幕录制通用的结构体、字符常量、枚举。 12 13**引用文件:** <multimedia/player_framework/native_avscreen_capture_base.h> 14 15**库:** libnative_avscreen_capture.so 16 17**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 18 19**起始版本:** 10 20 21**相关模块:** [AVScreenCapture](capi-avscreencapture.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [OH_AudioCaptureInfo](capi-avscreencapture-oh-audiocaptureinfo.md) | OH_AudioCaptureInfo | 音频采样信息。<br> 当audioSampleRate和audioChannels同时为0时,忽略该类型音频相关参数,不录制该类型音频数据。 | 30| [OH_AudioEncInfo](capi-avscreencapture-oh-audioencinfo.md) | OH_AudioEncInfo | 音频编码信息。 | 31| [OH_AudioInfo](capi-avscreencapture-oh-audioinfo.md) | OH_AudioInfo | 音频信息。<br> 同时采集音频麦克风和音频内录数据时,两路音频的audioSampleRate和audioChannels采样参数需要相同。 | 32| [OH_VideoCaptureInfo](capi-avscreencapture-oh-videocaptureinfo.md) | OH_VideoCaptureInfo | 视频录制信息。当videoFrameWidth和videoFrameHeight同时为0时,忽略视频相关参数不录制屏幕数据。 | 33| [OH_VideoEncInfo](capi-avscreencapture-oh-videoencinfo.md) | OH_VideoEncInfo | 视频编码参数。 | 34| [OH_VideoInfo](capi-avscreencapture-oh-videoinfo.md) | OH_VideoInfo | 视频信息。 | 35| [OH_RecorderInfo](capi-avscreencapture-oh-recorderinfo.md) | OH_RecorderInfo | 录制文件信息。 | 36| [OH_AVScreenCaptureConfig](capi-avscreencapture-oh-avscreencaptureconfig.md) | OH_AVScreenCaptureConfig | 屏幕录制配置参数。 | 37| [OH_AVScreenCaptureCallback](capi-avscreencapture-oh-avscreencapturecallback.md) | OH_AVScreenCaptureCallback | OH_AVScreenCapture中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVScreenCapture实例中,并处理回调上报的信息,以保证OH_AVScreenCapture的正常运行。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnError](#oh_avscreencapture_onerror)、[OH_AVScreenCapture_OnBufferAvailable](#oh_avscreencapture_onbufferavailable)替代。 | 38| [OH_Rect](capi-avscreencapture-oh-rect.md) | OH_Rect | 定义录屏界面的宽高以及画面信息。 | 39| [OH_AudioBuffer](capi-avscreencapture-oh-audiobuffer.md) | OH_AudioBuffer | 定义了音频数据的大小、类型、时间戳等配置信息。 | 40| [OH_NativeBuffer](capi-avscreencapture-avscreencapture-oh-nativebuffer.md) | OH_NativeBuffer | 提供录屏的视频原始码流类。 | 41| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) | OH_AVScreenCapture | 通过OH_AVScreenCapture可以获取视频与音频的原始码流。 | 42| [OH_AVScreenCapture_ContentFilter](capi-avscreencapture-oh-avscreencapture-contentfilter.md) | OH_AVScreenCapture_ContentFilter | 通过OH_AVScreenCapture_ContentFilter过滤音视频内容。 | 43| [OH_AVScreenCapture_CaptureStrategy](capi-avscreencapture-oh-avscreencapture-capturestrategy.md) | OH_AVScreenCapture_CaptureStrategy | 通过OH_AVScreenCapture_CaptureStrategy设置录屏策略。 | 44| [OH_AVScreenCapture_UserSelectionInfo](capi-avscreencapture-oh-avscreencapture-userselectioninfo.md) | OH_AVScreenCapture_UserSelectionInfo | 通过OH_AVScreenCapture_UserSelectionInfo获取用户在授权界面(选择界面)选择的参数。 | 45 46### 枚举 47 48| 名称 | typedef关键字 | 描述 | 49| -- | -- | -- | 50| [OH_CaptureMode](#oh_capturemode) | OH_CaptureMode | 枚举,表示屏幕录制的不同模式。 | 51| [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) | OH_AudioCaptureSourceType | 枚举,表示屏幕录制时的音频源类型。 | 52| [OH_AudioCodecFormat](#oh_audiocodecformat) | OH_AudioCodecFormat | 枚举,表示音频编码格式。 | 53| [OH_VideoCodecFormat](#oh_videocodecformat) | OH_VideoCodecFormat | 枚举,表示视频编码格式。 | 54| [OH_DataType](#oh_datatype) | OH_DataType | 枚举,表示屏幕录制流的数据格式。 | 55| [OH_VideoSourceType](#oh_videosourcetype) | OH_VideoSourceType | 枚举,表示视频源格式。当前仅支持RGBA格式。 | 56| [OH_ContainerFormatType](#oh_containerformattype) | OH_ContainerFormatType | 枚举,表示屏幕录制生成的文件类型。 | 57| [OH_AVScreenCaptureStateCode](#oh_avscreencapturestatecode) | OH_AVScreenCaptureStateCode | 枚举,表示状态码。 | 58| [OH_AVScreenCaptureBufferType](#oh_avscreencapturebuffertype) | OH_AVScreenCaptureBufferType | 枚举,表示buffer类型。 | 59| [OH_AVScreenCaptureFilterableAudioContent](#oh_avscreencapturefilterableaudiocontent) | OH_AVScreenCaptureFilterableAudioContent | 枚举,表示可过滤的音频类型。 | 60| [OH_AVScreenCaptureContentChangedEvent](#oh_avscreencapturecontentchangedevent) | OH_AVScreenCaptureContentChangedEvent | 枚举,表示录屏内容变更事件。 | 61| [OH_AVScreenCapture_FillMode](#oh_avscreencapture_fillmode) | OH_AVScreenCapture_FillMode | 图像填充模式。 | 62 63### 函数 64 65| 名称 | typedef关键字 | 描述 | 66| -- | -- | -- | 67| [typedef void (\*OH_AVScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode)](#oh_avscreencaptureonerror) | OH_AVScreenCaptureOnError | 当OH_AVScreenCapture实例运行出错时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnError](#oh_avscreencapture_onerror)替代。 | 68| [typedef void (\*OH_AVScreenCaptureOnAudioBufferAvailable)(OH_AVScreenCapture *capture, bool isReady, OH_AudioCaptureSourceType type)](#oh_avscreencaptureonaudiobufferavailable) | OH_AVScreenCaptureOnAudioBufferAvailable | 当OH_AVScreenCapture实例操作期间音频缓存区可用时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnBufferAvailable](#oh_avscreencapture_onbufferavailable)替代。 | 69| [typedef void (\*OH_AVScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady)](#oh_avscreencaptureonvideobufferavailable) | OH_AVScreenCaptureOnVideoBufferAvailable | 当OH_AVScreenCapture实例操作期间视频缓存区可用时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnBufferAvailable](#oh_avscreencapture_onbufferavailable)替代。 | 70| [typedef void (\*OH_AVScreenCapture_OnStateChange)(struct OH_AVScreenCapture *capture, OH_AVScreenCaptureStateCode stateCode, void *userData)](#oh_avscreencapture_onstatechange) | OH_AVScreenCapture_OnStateChange | 当OH_AVScreenCapture实例操作期间发生状态变更时,将调用函数指针。 | 71| [typedef void (\*OH_AVScreenCapture_OnError)(OH_AVScreenCapture *capture, int32_t errorCode, void *userData)](#oh_avscreencapture_onerror) | OH_AVScreenCapture_OnError | 当OH_AVScreenCapture实例操作期间发生错误时,将调用函数指针。 | 72| [typedef void (\*OH_AVScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture, OH_AVBuffer *buffer, OH_AVScreenCaptureBufferType bufferType, int64_t timestamp, void *userData)](#oh_avscreencapture_onbufferavailable) | OH_AVScreenCapture_OnBufferAvailable | 当OH_AVScreenCapture实例操作期间音频或视频缓存区可用时,将调用该函数指针。 | 73| [typedef void (\*OH_AVScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId, void *userData)](#oh_avscreencapture_ondisplayselected) | OH_AVScreenCapture_OnDisplaySelected | 当录屏事件开始时,将调用函数指针。 | 74| [typedef void (\*OH_AVScreenCapture_OnCaptureContentChanged)(OH_AVScreenCapture* capture, OH_AVScreenCaptureContentChangedEvent event, OH_Rect* area, void *userData)](#oh_avscreencapture_oncapturecontentchanged) | OH_AVScreenCapture_OnCaptureContentChanged | 当OH_AVScreenCapture实例操作期间录屏内容变化时,将调用函数指针。 | 75| [typedef void (\*OH_AVScreenCapture_OnUserSelected)(OH_AVScreenCapture* capture, OH_AVScreenCapture_UserSelectionInfo* selections, void *userData)](#oh_avscreencapture_onuserselected) | OH_AVScreenCapture_OnUserSelected | 当用户在授权界面(选择界面)选择参数时,功能接口将参数返回给应用程序。 | 76 77## 枚举类型说明 78 79### OH_CaptureMode 80 81``` 82enum OH_CaptureMode 83``` 84 85**描述** 86 87枚举,表示屏幕录制的不同模式。 88 89**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 90 91**起始版本:** 10 92 93| 枚举项 | 描述 | 94| -- | -- | 95| OH_CAPTURE_HOME_SCREEN = 0 | 录制主屏幕。 | 96| OH_CAPTURE_SPECIFIED_SCREEN = 1 | 录制指定屏幕。 | 97| OH_CAPTURE_SPECIFIED_WINDOW = 2 | 录制指定窗口。 | 98| OH_CAPTURE_INVAILD = -1 | 无效模式。 | 99 100### OH_AudioCaptureSourceType 101 102``` 103enum OH_AudioCaptureSourceType 104``` 105 106**描述** 107 108枚举,表示屏幕录制时的音频源类型。 109 110**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 111 112**起始版本:** 10 113 114| 枚举项 | 描述 | 115| -- | -- | 116| OH_SOURCE_INVALID = -1 | 无效音频源。 | 117| OH_SOURCE_DEFAULT = 0 | 默认音频源,默认为麦克风。 | 118| OH_MIC = 1 | 麦克风录制的外部音频流。 | 119| OH_ALL_PLAYBACK = 2 | 系统播放的所有内部音频流。 | 120| OH_APP_PLAYBACK = 3 | 指定应用播放的内部音频流。 | 121 122### OH_AudioCodecFormat 123 124``` 125enum OH_AudioCodecFormat 126``` 127 128**描述** 129 130枚举,表示音频编码格式。 131 132**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 133 134**起始版本:** 10 135 136| 枚举项 | 描述 | 137| -- | -- | 138| OH_AUDIO_DEFAULT = 0 | 默认音频编码,默认为AAC_LC。 | 139| OH_AAC_LC = 3 | AAC_LC音频编码。 | 140| OH_AUDIO_CODEC_FORMAT_BUTT | 无效格式。 | 141 142### OH_VideoCodecFormat 143 144``` 145enum OH_VideoCodecFormat 146``` 147 148**描述** 149 150枚举,表示视频编码格式。 151 152**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 153 154**起始版本:** 10 155 156| 枚举项 | 描述 | 157| -- | -- | 158| OH_VIDEO_DEFAULT = 0 | 默认视频编码,默认为H.264。 | 159| OH_H264 = 2 | H.264。 | 160| OH_H265 = 4 | H.265/HEVC。 | 161| OH_MPEG4 = 6 | MPEG4。 | 162| OH_VP8 = 8 | VP8。 | 163| OH_VP9 = 10 | VP9。 | 164| OH_VIDEO_CODEC_FORMAT_BUTT | 无效格式。 | 165 166### OH_DataType 167 168``` 169enum OH_DataType 170``` 171 172**描述** 173 174枚举,表示屏幕录制流的数据格式。 175 176**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 177 178**起始版本:** 10 179 180| 枚举项 | 描述 | 181| -- | -- | 182| OH_ORIGINAL_STREAM = 0 | 原始流格式,如YUV/RGBA/PCM等。 | 183| OH_ENCODED_STREAM = 1 | 编码格式,如H264/AAC等。当前版本暂不支持。 | 184| OH_CAPTURE_FILE = 2 | 保存文件格式,支持mp4。 | 185| OH_INVAILD = -1 | 无效格式。 | 186 187### OH_VideoSourceType 188 189``` 190enum OH_VideoSourceType 191``` 192 193**描述** 194 195枚举,表示视频源格式。当前仅支持RGBA格式。 196 197**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 198 199**起始版本:** 10 200 201| 枚举项 | 描述 | 202| -- | -- | 203| OH_VIDEO_SOURCE_SURFACE_YUV = 0 | YUV格式。当前版本暂不支持。 | 204| OH_VIDEO_SOURCE_SURFACE_ES | raw格式。当前版本暂不支持。 | 205| OH_VIDEO_SOURCE_SURFACE_RGBA | RGBA格式。 | 206| OH_VIDEO_SOURCE_BUTT | 无效格式。 | 207 208### OH_ContainerFormatType 209 210``` 211enum OH_ContainerFormatType 212``` 213 214**描述** 215 216枚举,表示屏幕录制生成的文件类型。 217 218**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 219 220**起始版本:** 10 221 222| 枚举项 | 描述 | 223| -- | -- | 224| CFT_MPEG_4A = 0 | 音频格式 m4a。 | 225| CFT_MPEG_4 = 1 | 视频格式 mp4。 | 226 227### OH_AVScreenCaptureStateCode 228 229``` 230enum OH_AVScreenCaptureStateCode 231``` 232 233**描述** 234 235枚举,表示状态码。 236 237**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 238 239**起始版本:** 12 240 241| 枚举项 | 描述 | 242| -- | -- | 243| OH_SCREEN_CAPTURE_STATE_STARTED = 0 | 已开始录屏。 | 244| OH_SCREEN_CAPTURE_STATE_CANCELED = 1 | 已取消录屏。 | 245| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER = 2 | 已停止录屏。 | 246| OH_SCREEN_CAPTURE_STATE_INTERRUPTED_BY_OTHER = 3 | 录屏被其他录屏中断。 | 247| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_CALL = 4 | 录屏被通话中断。 | 248| OH_SCREEN_CAPTURE_STATE_MIC_UNAVAILABLE = 5 | 麦克风不可用。 | 249| OH_SCREEN_CAPTURE_STATE_MIC_MUTED_BY_USER = 6 | 麦克风被静音。 | 250| OH_SCREEN_CAPTURE_STATE_MIC_UNMUTED_BY_USER = 7 | 麦克风被取消静音。 | 251| OH_SCREEN_CAPTURE_STATE_ENTER_PRIVATE_SCENE = 8 | 进入隐私界面。 | 252| OH_SCREEN_CAPTURE_STATE_EXIT_PRIVATE_SCENE = 9 | 隐私界面退出。 | 253| OH_SCREEN_CAPTURE_STATE_STOPPED_BY_USER_SWITCHES = 10 | 系统用户切换,录屏中断。 | 254 255### OH_AVScreenCaptureBufferType 256 257``` 258enum OH_AVScreenCaptureBufferType 259``` 260 261**描述** 262 263枚举,表示buffer类型。 264 265**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 266 267**起始版本:** 12 268 269| 枚举项 | 描述 | 270| -- | -- | 271| OH_SCREEN_CAPTURE_BUFFERTYPE_VIDEO = 0 | 视频数据。 | 272| OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_INNER = 1 | 内录音频数据。 | 273| OH_SCREEN_CAPTURE_BUFFERTYPE_AUDIO_MIC = 2 | 麦克风音频数据。 | 274 275### OH_AVScreenCaptureFilterableAudioContent 276 277``` 278enum OH_AVScreenCaptureFilterableAudioContent 279``` 280 281**描述** 282 283枚举,表示可过滤的音频类型。 284 285**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 286 287**起始版本:** 12 288 289| 枚举项 | 描述 | 290| -- | -- | 291| OH_SCREEN_CAPTURE_NOTIFICATION_AUDIO = 0 | 通知音。 | 292| OH_SCREEN_CAPTURE_CURRENT_APP_AUDIO = 1 | 应用自身声音。 | 293 294### OH_AVScreenCaptureContentChangedEvent 295 296``` 297enum OH_AVScreenCaptureContentChangedEvent 298``` 299 300**描述** 301 302枚举,表示录屏内容变更事件。 303 304**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 305 306**起始版本:** 20 307 308| 枚举项 | 描述 | 309| -- | -- | 310| OH_SCREEN_CAPTURE_CONTENT_HIDE = 0 | 录屏内容变为隐藏。 | 311| OH_SCREEN_CAPTURE_CONTENT_VISIBLE = 1 | 录屏内容变为可见。 | 312| OH_SCREEN_CAPTURE_CONTENT_UNAVAILABLE = 2 | 录屏内容状态变化为不可用,如录屏窗口关闭。 | 313 314### OH_AVScreenCapture_FillMode 315 316``` 317enum OH_AVScreenCapture_FillMode 318``` 319 320**描述** 321 322图像填充模式。 323 324**起始版本:** 20 325 326| 枚举项 | 描述 | 327| -- | -- | 328| OH_SCREENCAPTURE_FILLMODE_ASPECT_SCALE_FIT = 0 | 保持图像原始宽高比匹配目标图像大小,若比例不一致可能存在黑边。 | 329| OH_SCREENCAPTURE_FILLMODE_SCALE_TO_FILL = 1 | 图像拉伸匹配目标图像大小,若比例不一致图像变形。 | 330 331 332## 函数说明 333 334### OH_AVScreenCaptureOnError() 335 336``` 337typedef void (*OH_AVScreenCaptureOnError)(OH_AVScreenCapture *capture, int32_t errorCode) 338``` 339 340**描述** 341 342当OH_AVScreenCapture实例运行出错时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnError](#oh_avscreencapture_onerror)替代。 343 344**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 345 346**起始版本:** 10 347 348 349**参数:** 350 351| 参数项 | 描述 | 352| -- | -- | 353| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 354| int32_t errorCode | 指定错误码。 | 355 356### OH_AVScreenCaptureOnAudioBufferAvailable() 357 358``` 359typedef void (*OH_AVScreenCaptureOnAudioBufferAvailable)(OH_AVScreenCapture *capture, bool isReady,OH_AudioCaptureSourceType type) 360``` 361 362**描述** 363 364当OH_AVScreenCapture实例操作期间音频缓存区可用时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnBufferAvailable](#oh_avscreencapture_onbufferavailable)替代。 365 366**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 367 368**起始版本:** 10 369 370 371**参数:** 372 373| 参数项 | 描述 | 374| -- | -- | 375| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 376| bool isReady | 音频缓存区是否可用。 | 377| [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) type | 音频源类型。 | 378 379### OH_AVScreenCaptureOnVideoBufferAvailable() 380 381``` 382typedef void (*OH_AVScreenCaptureOnVideoBufferAvailable)(OH_AVScreenCapture *capture, bool isReady) 383``` 384 385**描述** 386 387当OH_AVScreenCapture实例操作期间视频缓存区可用时,将调用函数指针。<br> 从API 12开始,推荐使用接口[OH_AVScreenCapture_OnBufferAvailable](#oh_avscreencapture_onbufferavailable)替代。 388 389**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 390 391**起始版本:** 10 392 393 394**参数:** 395 396| 参数项 | 描述 | 397| -- | -- | 398| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 399| bool isReady | 视频缓存区是否可用。 | 400 401### OH_AVScreenCapture_OnStateChange() 402 403``` 404typedef void (*OH_AVScreenCapture_OnStateChange)(struct OH_AVScreenCapture *capture,OH_AVScreenCaptureStateCode stateCode, void *userData) 405``` 406 407**描述** 408 409当OH_AVScreenCapture实例操作期间发生状态变更时,将调用函数指针。 410 411**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 412 413**起始版本:** 12 414 415 416**参数:** 417 418| 参数项 | 描述 | 419| -- | -- | 420| struct [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 421| [OH_AVScreenCaptureStateCode](#oh_avscreencapturestatecode) stateCode | 指定状态码。 | 422| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 | 423 424### OH_AVScreenCapture_OnError() 425 426``` 427typedef void (*OH_AVScreenCapture_OnError)(OH_AVScreenCapture *capture, int32_t errorCode, void *userData) 428``` 429 430**描述** 431 432当OH_AVScreenCapture实例操作期间发生错误时,将调用函数指针。 433 434**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 435 436**起始版本:** 12 437 438 439**参数:** 440 441| 参数项 | 描述 | 442| -- | -- | 443| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 444| int32_t errorCode | 指定错误码。 | 445| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 | 446 447### OH_AVScreenCapture_OnBufferAvailable() 448 449``` 450typedef void (*OH_AVScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture, OH_AVBuffer *buffer,OH_AVScreenCaptureBufferType bufferType, int64_t timestamp, void *userData) 451``` 452 453**描述** 454 455当OH_AVScreenCapture实例操作期间音频或视频缓存区可用时,将调用该函数指针。 456 457**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 458 459**起始版本:** 12 460 461 462**参数:** 463 464| 参数项 | 描述 | 465| -- | -- | 466| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 467| [OH_AVBuffer](../apis-avcodec-kit/_core.md#oh_avbuffer) *buffer | 指向OH_AVBuffer缓存区实例的指针,该回调方法执行结束返回后,数据缓存区不再有效。 | 468| [OH_AVScreenCaptureBufferType](#oh_avscreencapturebuffertype) bufferType | 可用缓存区的数据类型。 | 469| int64_t timestamp | 时间戳,单位纳秒。 | 470| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 | 471 472### OH_AVScreenCapture_OnDisplaySelected() 473 474``` 475typedef void (*OH_AVScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId, void *userData) 476``` 477 478**描述** 479 480当录屏事件开始时,将调用函数指针。 481 482**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 483 484**起始版本:** 15 485 486 487**参数:** 488 489| 参数项 | 描述 | 490| -- | -- | 491| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md) *capture | 指向OH_AVScreenCapture实例的指针。 | 492| uint64_t displayId | 录屏屏幕的Id。 | 493| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 | 494 495### OH_AVScreenCapture_OnCaptureContentChanged() 496 497``` 498typedef void (*OH_AVScreenCapture_OnCaptureContentChanged)(OH_AVScreenCapture* capture,OH_AVScreenCaptureContentChangedEvent event, OH_Rect* area, void *userData) 499``` 500 501**描述** 502 503当OH_AVScreenCapture实例操作期间录屏内容变化时,将调用函数指针。 504 505**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 506 507**起始版本:** 20 508 509 510**参数:** 511 512| 参数项 | 描述 | 513| -- | -- | 514| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md)* capture | 指向OH_AVScreenCapture实例的指针。 | 515| [OH_AVScreenCaptureContentChangedEvent](#oh_avscreencapturecontentchangedevent) event | 录屏内容变更事件。 | 516| [OH_Rect](capi-avscreencapture-oh-rect.md)* area | 录屏内容可见时,对应位置信息。 | 517| void *userData | 指向应用设置该回调处理方法时提供的自定义数据的指针。 | 518 519### OH_AVScreenCapture_OnUserSelected() 520 521``` 522typedef void (*OH_AVScreenCapture_OnUserSelected)(OH_AVScreenCapture* capture,OH_AVScreenCapture_UserSelectionInfo* selections, void *userData) 523``` 524 525**描述** 526 527当用户在授权界面(选择界面)选择参数时,功能接口将参数返回给应用程序。 528 529**起始版本:** 20 530 531 532**参数:** 533 534| 参数项 | 描述 | 535| -- | -- | 536| [OH_AVScreenCapture](capi-avscreencapture-oh-avscreencapture.md)* capture | 指向OH_AVScreenCapture实例的指针。 | 537| [OH_AVScreenCapture_UserSelectionInfo](capi-avscreencapture-oh-avscreencapture-userselectioninfo.md)* selections | 用户在授权界面选择的录制参数信息。 | 538| void *userData | 指向用户数据的指针。 | 539 540 541